compiler-errors - Java类路径问题

我无法从命令行运行程序。我正在src文件夹中执行它,文件存储在包proj2中。

所以当我运行
java -cp "proj2/*;proj2/antlr-3.5.jar" proj2.myClass
我收到一个"Error: Could not find or load main class"
如果我删除类路径,然后写
java proj2.myClass
我得到java.lang.NoClassDefFoundError
如何正确使用类路径运行程序?

最佳答案

调用java proj2.myClass会尝试从 proj2 包中的类 myClass (按惯例,名称应为大写)运行main方法。

如果使用package proj2;声明了 myClass ,则必须在类路径条目的子文件夹 proj2 的子文件夹 proj2 中存在一个文件 myClass.class ,在给定的示例中,它应该是java -cp ".;proj2/antlr-3.5.jar" proj2.myClass,因此可以从proj2.myClass中搜索找到.

如果不需要antlr-3.5,则可以省略.

如果您的类没有声明包,则必须为java -cp "proj2;proj2/antlr-3.5.jar" myClass

您还应避免将类文件和jar文件混合在同一文件夹中,或通过相同的classpath条目进行访问,但应将jar和class子树分开。

https://stackoverflow.com/questions/19058244/

相关文章:

c++ - 发布版本中的 Visual C++ 6 编译错误

java - 在其他类中访问主类中的公共(public)变量

java - 编写一个程序,询问产品代码,产品数量并汇总所有价格

c# - 编译内容项目时出错

java - 错误 :class interface or enum expected

c++ - 没有匹配的函数用于调用c++

ios - drawRect :中的EXC_BAD_ACCESS

c++ - C++中的运行时错误字符串声明

java - 在PHP中获取Java编译错误

c++ - Count.h :10:5: error: ISO C++ forbids declar