找不到或加载主类 - 在命令提示符下运行时出错

时间:2013-09-13 21:33:14

标签: java classpath javac

我知道之前发过类似的问题而且我经历了这些问题,但仍然不适合我。

我正在创建一个示例JMS测试类(聊天应用程序)并使用javaee.jar和javax.jms.jar。我可以通过Eclipse IDE测试它,它工作正常。但我试图通过命令提示符运行,所以我可以运行多个窗口。我设法编译Chat.java文件,它创建了Chat.class。但是当我尝试运行它时,我得到could not find or load main class。这些是我使用的命令:

来自src/domain文件夹:

javac -classpath javaee.jar;javax.jms.jar Chat.java ----这在域名文件夹中创建了Chat.Class,其中domain是包名称

我从src文件夹

运行了以下命令

java -classpath javaee.jar;javax.jms.jar domain.Chat ----这会给我could not find or load main class domain.Chat错误消息

但是当我在没有-classpath参数(java domain.Chat)的情况下运行时,它会读取main()并给出不同的错误,因为它无法找到jms jar文件。

E:\eclipse\Spring\JMSChat\src>java domain.Chat Exception in thread "main" java.lang.NoClassDefFoundError: javax/jms/MessageList ener

所以基本上它在我没有传入classpath参数时找到Chat.class文件,当我使用类路径添加jar时它找不到类。我尝试从域文件夹以及src文件夹中运行它,但没有运气。我知道我做错了什么?

提前致谢。

2 个答案:

答案 0 :(得分:3)

试试这个

java -classpath javaee.jar;javax.jms.jar;. domain.Chat

默认情况下,java使用类路径中的当前目录。当您使用-cp标记时,它不会找到domain.Chat的路径。

答案 1 :(得分:0)

1)您可以从Eclipse运行该应用程序的多个实例,您可以通过单击控制台图标旁边的箭头循环查看其分配的控制台来检查其输出

2)尝试从源文件夹java -classpath .;javaee.jar;javax.jms.jar domain.Chat“运行。”表示当前目录