使用Maven和Netbeans进行Java远程调试
我正在尝试远程调试一个jar文件,该文件绑定了使用maven assembly插件创建的依赖项。但是无论我做什么,无论我如何调用运行代码的机器上的调试器,还是在我的本地机器上进行测试,我总是得到一个找不到主类的调试器。这就是消息,即使我在命令行中指定了确切的主类 POM文件:使用Maven和Netbeans进行Java远程调试,java,maven,debugging,netbeans,remote-debugging,Java,Maven,Debugging,Netbeans,Remote Debugging,我正在尝试远程调试一个jar文件,该文件绑定了使用maven assembly插件创建的依赖项。但是无论我做什么,无论我如何调用运行代码的机器上的调试器,还是在我的本地机器上进行测试,我总是得到一个找不到主类的调试器。这就是消息,即使我在命令行中指定了确切的主类 POM文件: <build> <plugins> <plugin> <artifactId>maven-assemb
<build>
<plugins>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.xxx.yyy.MyMainClass</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
调试开始于:
java -Xdebug -Xrunjdwp:transport=dt_socket,address=8800,server=y,suspend=y -classpath %classpath com.xxx.yyy.MyMainClass pubsubtest-0.1-jar-with-dependencies.jar
应用程序启动并显示:
Listening for transport dt_socket at address: 8800
但当我使用Netbeans连接到端口时,问题是:
Error: Could not find or load main class com.xxx.yyy.MyMainClass
我错过什么了吗?我应该以某种方式设置Netbeans吗?在Netbeans中,我保持项目的开放性
我遵循了本教程:
首先,忘记调试。你能从命令行正常运行应用程序吗?另外,您的命令行调用看起来很奇怪——虽然JAR必须位于类路径上,但您不应该将其作为最后一个参数。另外,如果您定义了一个主类,您甚至不需要指定类名。是的,我可以运行它,基本上没有任何错误,但我需要进一步更改它,问题是我只能在远程虚拟机上测试它,因为它只能在其上工作,因为某些其他组件只能在该虚拟机的LAN中使用,这是一个项目政策问题,我只是一个客人。那么调用应该是什么样子呢\
Error: Could not find or load main class com.xxx.yyy.MyMainClass