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

时间:2016-01-14 23:56:53

标签: java

我是Java新手,在运行已编译的代码时遇到问题。

我有一个名为AdditionApplication的文件。我编译这一行:

javac -cp * AdditionApplication.java

这会在当前目录中生成一个名为AdditionApplication.class

的文件

当我尝试使用代码运行程序时:

 java -cp * AdditionApplication

它提供错误Error: Could not find or load main class AdditionApplication

这种行为可能是什么原因?

更新

所以我的代码需要一个jar文件包含在文件的初始编译中。如果我有javac - cp * AdditionApplication.java,或者如果我指定了jar文件的完整路径,那么这似乎才有效。

当我在'java -cp中切换到.时。 AdditionApplication',我收到错误NoClassDefFoundError - 当我在编译期间初始引用的类不再可用时,我收集错误 - 为什么会出现这种情况?

1 个答案:

答案 0 :(得分:4)

类路径应该是包含文件的目录(不是*,除非它们是jar文件)。假设您有一个类文件(并根据您的其他命令),将该文件夹添加到类路径中。像,

java -cp . AdditionApplication

既然你也有一个jar,你可以(在* NIX系统上)

java -cp .:* AdditionApplication
Windows上的

java -cp .;* AdditionApplication