关于java:无法找到或加载主类

Could not find or load main class

我有Windows7,安装了JDK1.7.0及其支持的JRE7。我的问题是编译部分工作得很好,但是在运行Java程序时,我得到这样的错误:

"Could not find or load main class"

我将所有程序存储在javalab文件夹中。我已经为它设定了道路。过程如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
C:\Users\user>cd\

C:\>cd javalab

C:\javalab>autoexec.bat

C:\javalab>set path=C:\Program Files\Java\jdk1.7.0\bin

C:\javalab>javac p1.java

C:\javalab>java p1
Error: Could not find or load main class p1

C:\javalab>


我的第一个Java程序也有类似的问题。

我发出这个命令

1
java HelloWorld.class

这导致了同样的错误。

原来你需要排除.class

1
java HelloWorld

尝试:

1
java -cp . p1

当我遇到同样的问题时,使用Fedora(Linux),这对我很有用。


编译和执行Java文件的简单方法。(HeloRoL.D.java不包含任何包)

1
2
3
4
set path="C:\Program Files (x86)\Java\jdk1.7.0_45\bin"
javac"HelloWorld.java"
java -cp . HelloWorld
pause

javac应该知道在哪里搜索类。试试这个:

1
javac -cp . p1.java

不需要指定类路径。您确定文件p1.java存在吗?


我有几乎相同的问题,但有以下变化:

  • 我已经将一个随时可用的Maven项目从PC1(项目在那里工作得很好)导入到Eclipse IDE中,再导入到另一个PC2。
  • 当试图在pc 2上运行项目时,出现了相同的错误"找不到或加载主类"。
  • 我检查了路径变量(它在我的例子中有很多值)并添加了JavaJHOLD变量(在我的例子中它是javaHoe= c:程序文件javajdk1.7.0y03)重新启动ecplise后,它仍然不工作
  • 我试过在PC2上运行简单的helloworld.java(在另一个项目中),它起作用了。
  • 所以我在导入的最近的项目中添加了helloworld类,并在那里执行了它,嗯,我在该项目中的主要类也开始正常运行。
  • 这很奇怪,我不能完全理解。希望它能帮助别人。也是。


    首先检查你的类名。根据批处理文件说明,它应该是p1。然后检查该类的包,如果它在任何包中,请指定运行的时间。

    如果包装是x.y

    1
    java x.y.p1


    我想你在p1.java中有一个不同的类名


    下面是我的工作环境路径变量,在故障排除之后

    类路径

    ;C:程序文件(x86)javajRe7LbExtqtjava. zip;c:程序文件(x86)javajdk1.60y27 27 bin

    路径<---有时这条路径会被太多的路径填满,您不能添加路径(这是我的情况!)

    BunCHOFFATH;C:程序文件(x86)javajdk1.60y27 27 bin

    另外,当您尝试使用cmd来执行文件时……请确保您在本地目录中的文件是您试图执行的文件(您已经执行了)。

    只是一个小清单,为仍然有这个问题的人。


    我也遇到过类似的问题。如果您使用Eclipse,您需要转到您拥有SRC/文件夹的文件夹…如果你用的是包裹-那么你用的是

    1
    javac -cp . packageName/className

    这意味着如果你有一个名为def的包,并且有一个名为textframe.java的主类,你会写

    1
    javac -cp . def/TextFrame

    省略尾随.java扩展,然后用

    1
    java def/TextFrame

    如果您有参数,那么您需要为它提供与您的程序对应的参数。我希望这能有所帮助。


    您可能已经添加了classpath环境变量!!

    使用下列方法避免在java -cp . CLASSFILE中进一步使用-cp .

    添加。到系统属性->环境变量或命令中的类路径

    set CLASSPATH=%CLASSPATH%;.;


    首先,将您的文件*.class(例如Hello.class)放入1个文件夹(例如C:\java)。然后尝试command并键入cd /d C:\java。现在你可以键入"Java hello"!


    我在日食中也遇到了类似的问题。每当我单击运行按钮时,它会给我一条消息:"错误:找不到或加载主类"。但是,当我在项目资源管理器中右键单击Java文件并以Java配置运行时,它运行良好。

    我认为这是因为它在默认情况下尝试在其他一些导致问题的配置中运行它。

    希望这个答案有帮助。


    如果有一个使用命令行编译的.java文件,则删除最顶层的包部分来自代码,再编译一遍,它就可以工作了。

    这对我很有用。


    我有

    ':'

    在我的项目名称中,例如"香港科技大学:第2部分"改名为"hkustx-part-2"对我有效


    有时,导致这个问题的原因与主类无关。我不得不艰难地找到这个,我搬走的是一个参考图书馆,它给了我:

    Could not find or load main class xxx Linux

    我只是删除了那个引用并再次添加,它再次运行良好。


    您可以使用NetBeans IDE,它可以免费下载和使用"开源"。您甚至可以在这个IDE中使用其他编程语言。它支持HTML5的最新版本。这使您的编程更容易。如果你不熟悉它,那么选择一本NETBeas集成的书,比如SAMS,在24小时内自学Java。