我是 Java 新手,在运行编译的代码时遇到问题。
我有一个名为AdditionApplication
的文件。我编译这一行:
javac -cp * AdditionApplication.java
这会在当前目录中生成一个名为 AdditionApplication.class
当我尝试使用代码运行程序时:
java -cp * AdditionApplication
它给出错误错误:无法找到或加载主类AdditionApplication
造成这种行为的原因是什么?
更新
所以我的代码需要在文件的初始编译中包含一个 jar 文件。这似乎只有在我有 javac - cp * AdditionApplication.java 或指定了 jar 文件的完整路径时才有效。
当我切换到 'java -cp 中的 .
时。 AdditionApplication',我收到错误 NoClassDefFoundError
- 我收集的错误是当编译期间初始引用的类不再可用时发生的 - 为什么会出现这种情况?
最佳答案
类路径应该是包含文件的目录(不是 *
,除非它们是 jar 文件)。假设您有一个类文件(并且基于您执行的其他命令),则将该文件夹添加到类路径中。比如,
java -cp . AdditionApplication
既然你也有一个 jar,你可以这样做(在 *NIX 系统上)
java -cp .:* AdditionApplication
或(在 Windows 上)
java -cp .;* AdditionApplication
关于java - 无法运行已编译的 Java 代码 - 无法找到或加载主类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34802028/