Java 获取错误“;无法找到或加载主类HelloWorld“;
我有一个简单的代码:Java 获取错误“;无法找到或加载主类HelloWorld“;,java,Java,我有一个简单的代码: public class HelloWorld{ public static void main(String[] args){ System.out.println("HelloWorld"); } } 以及文件名HelloWorld.java 在命令提示下,我键入: javac HelloWorld.java java HelloWorld (同一目录) 我收到错误:“无法找到或加载主类HelloWorld” 我确信这与安装不当无关
public class HelloWorld{
public static void main(String[] args){
System.out.println("HelloWorld");
}
}
以及文件名HelloWorld.java
在命令提示下,我键入:
javac HelloWorld.java
java HelloWorld
(同一目录)
我收到错误:“无法找到或加载主类HelloWorld”
我确信这与安装不当无关,因为我重新安装了jdk和jre两次
编辑:
这在之前是有效的,第二天,代码、目录或任何东西都没有更改,它开始出现错误。在CMD中,而不是键入:
java HelloWorld
尝试键入:
java HelloWorld.class
在CMD中,不要键入:
java HelloWorld
尝试键入:
java HelloWorld.class
如果CLASSPATH环境变量的设置不正确/不适当,则可能会出现这种行为;e、 g.当前目录不在类路径上。(默认情况下是…) 试试这个:
java -classpath . HelloWorld
假设这是可行的。。。问题在于您对“类路径”概念的理解。Oracle文档很好地解释了这一点:
- 命令文档(&C)。。。指定-classpath参数
java -classpath . HelloWorld
假设这是可行的。。。问题在于您对“类路径”概念的理解。Oracle文档很好地解释了这一点:
- 命令文档(&C)。。。指定-classpath参数
java-cp“C:\WhatEverDirectoryYourFileIsIn”HelloWorld
试试:
java-cp“C:\WhatEverDirectoryYourFileIsIn“HelloWorld
javac-version的输出是什么?您确认了javac HelloWorld.java
的输出中没有错误吗?这是一个可疑的问题我希望他会报告错误…:)我猜javac实际上不是javac,javac-version
的输出是什么?您确认了javac HelloWorld.java
的输出中没有错误吗?这是一个可疑的问题,我希望他会报告错误…)我猜javac实际上不是javac…用于指定文件扩展名。因为javac将把HelloWorld.class放在HelloWorld.java的同一目录中。因此,您必须指定文件扩展名,以便CMD知道您想要运行HelloWorld.class,而不是HelloWorld.java。如果没有文件扩展名,则有两个名为HelloWorld的文件。你必须指定你知道的那个,它不一定是复杂的解决方案。很多时候,一些事情只是变成了一些愚蠢的小错误,你甚至没有意识到你犯了。所以,不要因为我试图帮助你而对我说废话@uraimoNicholas如果你用分机就不行了。它从来没有这样做过,使用.class
是java初学者常见的错误。java
启动器希望您给他完全限定的类名,这只是类的包+
类的名称(他在公共类之后拥有的名称)。在这种情况下,他没有包,因此HelloWorld
就足够了。没有人给你废话,与其试图解释一个错误的答案,不如开始怀疑它是否正确,当你发现它是错误的时候编辑它。检查其他两个答案,这些答案可能是正确的,而不是这一个。@NicholasGreene-否决投票不是“给你废话”。相反,这是告诉你的首选方式。。。更重要的是,其他读者。。。这是一个糟糕的答案。在这种情况下,它是不好的,因为它显然是不正确的。我建议您只需删除您的答案,并获取代表分数。以指定文件扩展名。因为javac将把HelloWorld.class放在HelloWorld.java的同一目录中。因此,您必须指定文件扩展名,以便CMD知道您想要运行HelloWorld.class,而不是HelloWorld.java。如果没有文件扩展名,则有两个名为HelloWorld的文件。你必须指定你知道的那个,它不一定是复杂的解决方案。很多时候,一些事情只是变成了一些愚蠢的小错误,你甚至没有意识到你犯了。所以,不要因为我试图帮助你而对我说废话@uraimoNicholas如果你用分机就不行了。它从来没有这样做过,使用.class
是java初学者常见的错误。java
启动器希望您给他完全限定的类名,这只是类的包+
类的名称(他在公共类之后拥有的名称)。在这种情况下,他没有包,因此HelloWorld
就足够了。没有人给你废话,与其试图解释一个错误的答案,不如开始怀疑它是否正确,当你发现它是错误的时候编辑它。检查其他两个答案,这些答案可能是正确的,而不是这一个。@NicholasGreene-否决投票不是“给你废话”。相反,这是告诉你的首选方式。。。更重要的是,其他读者。。。这是一个糟糕的答案。在这种情况下,它是不好的,因为它显然是不正确的。我建议你删除你的答案,然后拿回代表分数。你看过我答案中的参考资料了吗?这样做,你应该能够理解为什么它会起作用。提示:如果有效,您可以推断CLASSPATH环境变量一定是错误的。您阅读了我答案中的引用了吗?这样做,你应该能够理解为什么它会起作用。提示:如果有效,您可以推断CLASSPATH环境变量一定是错误的。