我使用函数JNI_CreateJavaVM
在Windows上将进程内JVM创建为可执行文件。我还传递了一些选项来打开调试,特别是:
-Xrunjdwp:transport=dt_socket,server=y,address=666,suspend=n
以及其他一些选项。 这样可以正常使用。
我遇到的问题是,如果我启动两个版本的可执行文件:JNI_CreateJavaVM
崩溃。显而易见的解决方法是检查端口666是否正忙,如果是,请使用不同的端口号。除了我不知道如何做到这一点!
所以,我的问题是:我如何检查是否正在收听某个端口?
答案 0 :(得分:0)
请勿提前测试端口的使用情况。只需让您的应用程序执行它想要执行的操作,并在那里捕获异常。在测试时和实际尝试使用端口之间,情况可能会发生变化。
此外,如果您正在尝试编写服务器应用程序,则可以让操作系统自动为您选择一个空闲端口。来自JavaDoc for http://docs.oracle.com/javase/7/docs/api/java/net/ServerSocket.html
创建绑定到指定端口的服务器套接字。端口号为0表示通常从临时端口范围自动分配端口号。然后可以通过调用getLocalPort来检索此端口号。