我在调试中运行jetty并将IntelliJ IDEA附加到侦听端口时遇到问题。
mvnDebug jetty:run-exploded
将启动码头,因为我可以看到以下消息
准备在调试中执行Maven 模式侦听传输dt_socket 地址:8000
但是,当我尝试将IDEA连接到端口8000时,我会在IDE中收到连接的消息,然后立即断开连接。码头会出现以下错误
线程“main”中的异常 java.lang.NoClassDefFoundError: 组织/ Codehaus的/ classworlds /启动 引起: 抛出java.lang.ClassNotFoundException: org.codehaus.classworlds.Launcher at java.net.URLClassLoader的$ 1.run(URLClassLoader.java:200) 在 java.security.AccessController.doPrivileged(母语 方法)at java.net.URLClassLoader.findClass(URLClassLoader.java:188) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:307) 在 sun.misc.Launcher $ AppClassLoader.loadClass(Launcher.java:301) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:252) 在 java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320) 无法找到主类: org.codehaus.classworlds.Launcher。 程序将退出。
我对此感到困惑,因为使用
在jetty下运行项目没有问题 mvn jetty:run-exploded
我的同事也没有在IDEA下进行调试的问题,只是他和我的设置之间的区别在于我有64位机器而且他在32位
答案 0 :(得分:1)
我找到了临时解决方案。
在执行之前,我只需要使用一些附加参数重新导出MAVEN_OPTS,这样只能在当前打开的终端窗口上使用。
我的系统MAVEN_OPTS是
export MAVEN_OPTS="-Xms256m -Xmx512m -XX:PermSize=128m -XX:-UseGCOverheadLimit"
并且会话更改为
export MAVEN_OPTS="-Xms256m -Xmx1500m -XX:PermSize=128m -XX:-UseGCOverheadLimit -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"
我明天回来时,我将不得不与我的同事讨论“mvnDebug”别名设置......