【问题标题】:Java - Running my java program errorJava - 运行我的 java 程序错误
【发布时间】:2014-11-15 21:08:49
【问题描述】:

我使用“javac LabOne.java”编译了我的 java 程序,它成功地编译了。现在在那个文件夹中有一个 LabOne.java 和 LabOne.class 正如预期的那样。但是当我尝试使用“java LabOne”运行程序时,我收到一条错误消息“错误:无法找到或加载主类 LabOne”。

请有人帮助我。

代码:

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */
package labone;

import java.util.Scanner;

/**
 *
 *
 */
public class LabOne {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {

        Scanner userInput = new Scanner(System.in);

        System.out.println("Welcome To The String Editor!"); 
        System.out.println(""); 
        System.out.println("Please choose what you would like to do by choosing one of the options below:"); 
        System.out.println("1. Input String");
        System.out.println("2. Print Current String");
        System.out.println(""); 
        int userOption = userInput.nextInt();
        String stringInput = new String ();

        switch (userOption) {
            case 1: stringInput = userInput.nextLine();
                    System.out.println(stringInput);
                    break;

            case 2: System.out.println(stringInput);
                    break;

            default: ;
                     break;
        }


        // TODO code application logic here
    }

}

【问题讨论】:

  • 请分享您的代码。
  • labonelabOne?
  • 您的错误消息显示“labone”而不是“labOne”。
  • 即使您的操作系统(如 Windows)不区分大小写,Java 也是
  • 您的课程在 labOne 包中。以java labOne.LabOne 运行,并从正确的目录运行,即labOne 目录所在的目录。

标签: java


【解决方案1】:

错误说系统找不到main方法。 可能有多种原因

  1. class labOne 是“公开的”吗?
  2. 是“labOne”类中定义的主要方法,并且定义为公共和静态?
  3. 类名是否与文件名相同并且区分大小写,所以应该完全相同?

如果以上两种情况都不是,那么也请分享代码以便能够回答。

【讨论】:

  • 1) public class LabOne { 和 2) public static void main(String[] args) {
  • @45aken 现在是“LabOne”?那是另一种大写。请选择一个并始终如一地使用它。
  • 文件名是“labOne.java”,类名是“LabOne”,区分大小写,必须相同。
  • 他们都是LabOne。我只是在这里打错了。
【解决方案2】:

我将从整理文件/类命名问题、可访问性运算符开始,然后最终查看 CLASSPATH。您可以在系统环境设置中使用该路径,也可以在调用 java 编译器时使用 -cp 选项。我强烈建议您分享更多细节。

【讨论】:

    【解决方案3】:

    问题是因为您的类 LabOne 驻留在一个名为 labone 的包中。您很可能在文件夹 labone 中并且运行了 javac LabOne.java 并且它成功了。但是,当您尝试使用 java LabOne 运行它时,它会失败。

    解决办法是cd上一级然后执行:

    javac labone/LabOne.java 
    
    java labone/LabOne
    

    它会起作用的。

    This answer 处理类似的问题。

    您也可以尝试将包添加到类路径中,但目前看来您的类并不依赖于其他类,因此这样做可能有点过头了。

    【讨论】:

    • 所以目录结构是labone/src/ ?
    • 我通过在 src 文件夹中使用上面的两个语句让它工作。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-08
    • 2016-04-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多