繁体   English   中英

无法找到或加载主类

[英]Could not find or load main class

我有Windows 7,安装了jdk1.7.0及其支持的jre7。
我的问题是编译部分工作正常,但在运行Java程序时我收到此错误说:

“无法找到或加载主类”

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

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程序遇到了类似的问题。

我发出了这个命令

java HelloWorld.class

这导致了同样的错误。

原来你需要排除.class

java HelloWorld

尝试:

java -cp . p1

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

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

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

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

javac -cp . p1.java

您不应该指定classpath。 你确定文件p1.java存在吗?

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

  1. 我已经将一个即用型maven项目从PC1(项目在那里完美地工作)导入Eclipse IDE到另一台PC2
  2. 什么时候试图在PC 2上运行项目得到相同的错误“无法找到或加载主类”
  3. 我已经检查了PATH变量(在我的情况下它有很多值)并添加了JAVA_HOME变量(在我的例子中它是JAVA_HOME = C:\\ Program Files \\ Java \\ jdk1.7.0_03)重新启动Ecplise之后它仍然无法正常工作
  4. 我试图在PC2上运行简单的HelloWorld.java(在另一个项目中) - 它有效
  5. 所以我已经将HelloWorld类添加到导入的最近项目中,并在那里执行 - 呵呵 - 我在该项目中的主类也开始正常运行。

这是非常奇怪的行为,我无法完全理解它。 希望它会对某人有所帮助。 太。

经过多次故障排除后,这是我工作的env路径变量

CLASSPATH

。; C:\\ Program Files(x86)\\ Java \\ jre7 \\ lib \\ ext \\ QTJava.zip; C:\\ Program Files(x86)\\ Java \\ jdk1.6.0_27 \\ bin

路径<---有时这个路径填满了太多的路径,你不能添加路径(这是我的情况!)

bunchofpaths; C:\\ Program Files(x86)\\ Java \\ jdk1.6.0_27 \\ bin

此外,当您尝试使用cmd执行文件时...请确保您在本地目录中作为您尝试执行的文件(您已执行此操作)。

对于仍有这个问题的人来说,只需要一个小清单。

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

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

如果包是xy

java x.y.p1

我遇到过类似的问题。 如果您使用Eclipse,您需要转到您拥有src /文件夹的文件夹...如果您使用了包 - 那么您使用

javac -cp . packageName/className

这意味着如果你有一个名为def的包和名为TextFrame.java的主类,你就会写

javac -cp . def/TextFrame

省略尾随的.java扩展名,然后用它运行它

java def/TextFrame 

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

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

使用以下命令以避免进一步使用-cp . java -cp . CLASSFILE java -cp . CLASSFILE

添加。 到系统属性 - >环境变量中的CLASSPATH或cmd

set CLASSPATH=%CLASSPATH%;.;

我在Eclipse中遇到了类似的问题。 每当我点击“运行”按钮时,它都会给我一条消息:“错误:无法找到或加载主类”。 但是当我右键单击项目资源管理器中的java文件和Run As Java配置时,它完美地运行。

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

希望这个答案有所帮助。

如果您有一个.java文件要使用命令行进行编译,那么从代码中删除最顶层的包部分,再次编译,它将起作用。

这对我有用。

首先,将您的文件*.class (例如Hello.class )放入1个文件夹(例如C:\\java )。 然后你尝试命令并输入cd /d C:\\java 现在你可以输入“java Hello”了!

有时可能导致问题的原因与主类无关。 我不得不以困难的方式找到它,它是我移动的引用库,它给了我:

无法找到或加载主类xxx Linux

我只是删除了该引用并再次添加,它再次正常工作。

我有

':'

在我的项目名称中,例如'HKUSTx:part-2'重命名'HKUSTx-part-2'为我工作

您可以使用可以免费下载并使用“开源”的NetBeans IDE 您甚至可以在此IDE中执行其他编程语言。 最新的支持HTML5。 这使您的编程更容易。 如果您不熟悉它,请选择一本集成了NetBeans的书,如24小时内的Sams Teach Yourself Java

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM