使用Maven和Netbeans进行Java远程调试

使用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

我正在尝试远程调试一个jar文件,该文件绑定了使用maven assembly插件创建的依赖项。但是无论我做什么,无论我如何调用运行代码的机器上的调试器,还是在我的本地机器上进行测试,我总是得到一个找不到主类的调试器。这就是消息,即使我在命令行中指定了确切的主类

POM文件:

<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