【问题标题】:"Hello, world!" - Could not find or load main class“你好世界!” - 无法找到或加载主类
【发布时间】:2014-06-10 16:56:27
【问题描述】:

计算机操作系统:Windows 7 语言:Java

很久以前我使用java,运行hello world程序时遇到问题:

public class Hello 
{
    public static void main (String args[]) 
    {
         System.out.println ("Hello World!");
    }
}

我将这段代码保存在 Hello.java 文件中,然后使用 cmd 编译:

C:\Users\XYZ\Desktop>javac -version
javac 1.6.0

C:\Users\XYZ\Desktop>javac Hello.java

C:\Users\XYZ\Desktop>java Hello
Error: Could not find or load main class Hello

C:\Users\XYZ\Desktop>  

你能解释一下为什么会抛出上面的错误信息吗?

【问题讨论】:

  • 运行dir 命令。你在那里看到Hello.class 吗?如果是,您的 Hello.java 文件中是否有任何包声明?
  • 您是否在桌面上看到一个名为“Hello.class”的文件?
  • 您缺少正确的}。或者这只是 StackOverflow 的 C & P 错误?
  • 是 Hello.java 类是在 javac 之后创建的
  • 顺便说一句:您应该从 Java 6 继续前进 - 它不再受到官方支持。

标签: java


【解决方案1】:

试试

java -cp . Hello

我认为你的类路径中没有当前目录

【讨论】:

  • @RClaven - 否决这个答案(这几乎肯定是正确的),因为它不会让你的代码工作是有点不公平。
  • 我的类文件在项目的 bin 文件夹中,所以 java -cp ./bin Hello 为我工作。
【解决方案2】:

试试这个:

java -cp . Hello

【讨论】:

    【解决方案3】:

    您在程序末尾缺少一个“}”

    public class Hello 
    {
        public static void main (String args[]) 
        {
           System.out.println ("Hello World!");
        }
    }
    

    然后尝试

    java -cp . Hello
    

    【讨论】:

    • 我在发帖时错过了这个花括号,这段代码正在编译,但没有运行。
    • java -cp 。你好,它成功了,你能告诉我为什么它不能使用'java Hello'命令工作吗,以前我记得我曾经使用java'ClassName'运行它
    • @yogeshkmrsoni 好的,如果它适用于此,那么您应该更改您的 CLASSPATH 环境变量以在其中包含 .。
    • •如果没有找到 CLASSPATH 环境变量,则默认使用当前文件夹 (".")
    【解决方案4】:

    尝试删除

    package package.path;
    

    希望这对你有所帮助。

    【讨论】:

      【解决方案5】:

      我遇到了完全相同的错误,我已经解决了这个问题,更改了我的 HelloWorld.java 文件和使用 javac 创建的 HelloWorld.class 文件的目录。

      我首先尝试了所有不同的方法来强制类路径,但没有成功。

      我欣赏这两个目录的唯一区别是,第一个路径的目录名称中包含空格。我需要进一步调查。

      不知道为什么我的 javac 在两个目录中都可以工作,而 java 却不行。

      编辑:我现在在第一个目录中再次尝试,它工作得很好。不知道为什么它以前不起作用,现在无法重复错误。

      【讨论】:

        【解决方案6】:

        我遇到了和你一样的问题。我解决它的方法是删除包声明。

        【讨论】:

          【解决方案7】:

          删除包声明并重新运行

          javac myprogram.java

          【讨论】:

            【解决方案8】:

            这可能会帮助那些拥有最新版本(如 java 1.8.0_201)的人

            在环境变量中正确设置类路径。

            JAVA_HOME = C:\Program Files\Java\jdk1.8.0_201
            CLASSPATH = %JAVA_HOME%\ lib.;

            将这个 JAVA_HOME 附加到 PATH 环境变量中

            注意:
            记得将 "." 放在 lib 文件夹之后,以加载 CLASSPATH var.

            中的所有类

            【讨论】:

              【解决方案9】:

              我遇到了和你一样的问题。 我使用eclipse编写JAVA代码。当我创建一个新的 JAVA 项目时,我通过选择项目布局的默认选项“为源文件和类文件创建单独的文件夹”解决了这个问题。 当我选择“使用项目文件夹作为源和类文件的根目录”时会出现问题 image of Project layout

              【讨论】:

                【解决方案10】:

                'javac' 未被识别为内部或外部命令, 可运行的程序或批处理文件。 ..................................................... ..................................................... .....错误输出

                Path 是一个环境变量,用于访问 java 或 javac 等用于运行 java 程序和编译 java 源文件的 java 二进制文件。路径可以被 Java 设置覆盖。操作系统使用路径来查找在 shell 中键入的任何二进制文件或命令。

                用于设置路径的命令:- 在窗口 10 环境变量中输入以下内容

                设置 PATH=%PATH%;C:\Program Files\Java\JDK1.8.0_121\bin

                错误:无法找到或加载主类 HelloWorld .................................... ..................................................... ....错误输出

                试试这个来纠正错误

                java -cp 。你好世界

                【讨论】:

                  【解决方案11】:

                  在命令提示符下正确设置类路径和类。

                  按照以下步骤操作:

                  1. 在命令提示符下复制您的 jdk->bin 路径如下:
                    C:\Users\SP\Desktop\Java>set class="C:\Program Files\Java\jdk1.8.0_73\lib";

                  2. 然后复制 jre->lib 路径并在 cmd 提示符下使用 \rt.jar 将其粘贴如下:
                    C:\Users\SP\Desktop\Java>set classpath="C:\Program Files\Java\jre1.8.0_201\lib\rt.jar";

                  完成上述更改后,尝试使用javac HelloWorld.java 运行您的程序 &java HelloWorld 命令。

                  【讨论】:

                    猜你喜欢
                    • 1970-01-01
                    • 1970-01-01
                    • 2021-11-19
                    • 2015-01-13
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    • 1970-01-01
                    相关资源
                    最近更新 更多