Mac终端:无法找到或加载主类CLASSNAME

时间:2014-06-12 00:57:00

标签: java eclipse macos

我正在尝试通过Mac上的终端运行java程序,但得到:

Error: Could not find or load main class (MY CLASSNAME)

我用Eclipse编译了这个应用程序,当我用Eclipse运行它时,它工作正常。 此外,我在正确的目录中,因为当我在终端中键入“ls”时,它列出了所有文件,包括我试图运行的类文件。

这是我输入的内容:

java mainClass

我非常感谢帮助解决这个问题!

谢谢,

迪安

编辑:解决方案 - 而不是java mainClass,它也必须有包:java startPackage.mainClass

5 个答案:

答案 0 :(得分:14)

首先确保您位于顶级package

上方的目录中

如果该类属于package com.foo.bar,则您希望位于com上方的目录中。

在您的情况下,您希望位于startPack上方的目录中。

然后您需要使用完全限定名称来运行类...

java statPack.mainClass

例如......

答案 1 :(得分:4)

确保您的CLASSPATH中有当前目录。

java -cp . mainClass

要全局设置,您可以在export CLASSPATH=$CLASSPATH:.内使用.bash_profile

另外,如果您的班级位于com.foo.bar等软件包中,那么您需要转到com的父目录并以完整路径运行您的应用程序。

java com.foo.bar.mainClass

答案 2 :(得分:2)

我在Mac机器上也遇到过这种情况,然后我必须做的就是:

问题陈述:

我在项目的根目录下有一个xyz包,即src / main / java,然后在xyz包里面我有一个类Student.java

我当前的目录是/ Users / username / projectname / src / main / java / xyz: 我可以看到Student.java存在于此处 我使用javac Student.java

编译它

现在我看到在这个位置创建了类文件。但是当我尝试使用java Student运行类文件时 我收到错误:错误:无法找到或加载主类学生

解决方案:

现在解决方案是在目录中退一步并转到根路径:/ Users / username / projectname / src / main / java并运行命令

java xyz.Student

它会起作用。

关注的链接:https://javarevisited.blogspot.com/2015/04/error-could-not-find-or-load-main-class-helloworld-java.html

答案 3 :(得分:0)

对于像我这样愚蠢的人,请确保您输入java HelloWorld-并 java HelloWorld.class-运行名称为HelloWorld.class的编译文件。如果您习惯按Tab键完成文件名,则尤其如此,因为如果您在键入java HelloWorld.class之类的内容后按Tab键进行自动完成,则终端会给您java He

此答案在这里,因为在我弄清楚自己做错了什么之前,它花了3个站点(包括此答案)和25个警告。

逻辑简单,输入困难

答案 4 :(得分:0)

使用绝对路径也可以解决这个问题:

java -classpath /Users/xingliu/IdeaProjects/springproject/src/main/java/ startPackage.mainClass