我有一个简单的java程序,socket,AWT和jUnit依赖。
我在eclipse中构建它,当我从eclipse运行/调试它时,它可以工作。
当我从命令行启动它时,我收到一条错误
Exception in thread "main" java.lang.NoClassDefFoundError
我猜这是因为没有在类路径中找到所需的依赖项之一。
鉴于从eclipse启动工作,有没有办法确定eclipse用于启动同一程序的命令行?
答案 0 :(得分:13)
当您尝试通过命令行运行时,看起来您的类路径未正确设置。您可以通过执行以下操作轻松导出Eclipse使用的命令:
答案 1 :(得分:1)
Eclipse将使用的类路径应该在项目的属性对话框中可见...
或者,在类Unix系统上,您可以使用(Linux / Fedora)ps axww | grep java
之类的东西来欺骗实际的命令行。
在Linux上,具体而言,/proc/
pid /cmdline
将提供整个命令行(使用'\ 0'字符进行拆分,因此它可能看起来是一起运行的您只需cat
该文件)和/proc/
pid /environ
将显示环境变量,如果您还需要查看它们。 (例如CLASSPATH
环境变量)
答案 2 :(得分:1)
你在这里问了两个不同的问题。
您可以通过右键单击项目名称来检查Java项目的类路径,然后左键单击底部的“属性”选项。
在Properties对话框中,左键单击Java Build Path将显示构建路径对话框。
如果要确定Eclipse命令行字符串,请查看“运行配置”。在菜单上,左键单击Run,然后左键单击Run Configurations。在Java Application下,您应该找到项目的运行配置。 Arguments选项卡显示Eclipse如何启动Java项目。