java - 无法运行已编译的 Java 代码 - 无法找到或加载主类

标签 java

我是 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/

相关文章:

java - 如何使用If else语句创建突发报告以进行绩效评估?

java - 快速排序。如何选择枢轴元素?

java - 如何打印二叉树

java - 实现Master-Slave架构最简单的Java框架是什么?

java - LibSVM 和 Weka API 不能一起工作

java - Tomcat 服务处于 Activity 状态但已退出

java - 使用仪器框架进行单元测试时出错

java - 如何使用循环找到距离平均值最远的值?

java - 检查 UUID 字符串是否为素数

java - 使用 JPanel 时何时创建手动后台缓冲区?