Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从netbeans远程调试jar_Java_Mysql_Netbeans_Remote Debugging_Executable Jar - Fatal编程技术网

Java 如何从netbeans远程调试jar

Java 如何从netbeans远程调试jar,java,mysql,netbeans,remote-debugging,executable-jar,Java,Mysql,Netbeans,Remote Debugging,Executable Jar,我试图找出如何调试远程运行的jar。以下是我的设想: My.jar将从VPS运行。这个jar基本上运行一个服务器 对于一个游戏,它还连接到一个mysql数据库。我使用3.bat文件启动服务器,该文件如下所示: 设置类路径=。;dist\aries.jar;dist\mina-core.jar;dist\slf4j-api.jar;dist\slf4j-jdk14.jar;dist\mysql-connector-java-bin.jar java-Xmx500m-Dwzpath=wz \-Dj

我试图找出如何调试远程运行的jar。以下是我的设想:

  • My.jar将从VPS运行。这个jar基本上运行一个服务器 对于一个游戏,它还连接到一个mysql数据库。我使用3.bat文件启动服务器,该文件如下所示:

    设置类路径=。;dist\aries.jar;dist\mina-core.jar;dist\slf4j-api.jar;dist\slf4j-jdk14.jar;dist\mysql-connector-java-bin.jar

    java-Xmx500m-Dwzpath=wz \-Djavax.net.ssl.keyStore=filename.keyStore-Djavax.net.ssl.keyStorePassword=passwd-Djavax.net.ssl.trustStore=filename.keyStore-Djavax.net.ssl.trustStorePassword=passwd.net.world.WorldServer

    停顿

我想做的是像正常一样在vps上启动服务器,但通过Netbeans IDE在本地机器上调试服务器。我不知道这是否可能,因为人们将连接到服务器(尽管我将调试一个只让我在线的测试服务器)

注意:我在来到这里之前做了很多搜索,发现很多与使用xdebug&php有关的事情与我的情况没有太大关系(我不认为)

-谢谢

关于这件事,有一个很好的解释

简言之:

将远程调试选项添加到Java命令中。例如:

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8888,suspend=n
然后,在NetBeans中使用attach debugger选项,并选择您的服务器和上面使用的端口(8888)。就这么简单

您可能需要考虑网络和防火墙方面的考虑,因为您可能已经注意到其中没有涉及密码,因此任何可以连接到端口的人都可以调试您的应用程序。这可能是一个很大的安全风险。您的VPS提供商可能有一些工具可以帮助您建立安全的专用连接。

对此有一些建议

简言之:

将远程调试选项添加到Java命令中。例如:

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8888,suspend=n
然后,在NetBeans中使用attach debugger选项,并选择您的服务器和上面使用的端口(8888)。就这么简单

您可能想考虑网络和防火墙的考虑,因为您可能注意到没有涉及密码,因此任何可以连接到端口的人都可以调试您的应用程序。这可能是一个很大的安全风险。您的VPS提供商可能有一些工具来帮助您建立安全的专用连接