找不到主班你好

时间:2014-08-27 22:19:56

标签: java

我环顾四周,但没有一个适用于其他人的解决方案适合我。

我安装了java 1.8.0

我的路径变量是C:\ Program Files \ Java \ jdk1.8.0_05 \ bin

我尝试运行以下程序hello.java:

package hello;

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

当我运行javac hello.java

时,程序编译得很好

但是当我使用java hellojava -cp . hellojava -classpath . hello时,它会返回错误'无法找到主要课程问候语。

我知道这是一个非常基本的问题,但我真的无法解决这个问题。

提前致谢

4 个答案:

答案 0 :(得分:4)

在我提供的very similar answers中,只要您在当前目录中进行编译,那么您需要确保已编译的类已经转到一个名为hello/的文件夹。

如果有,那么你可以运行:

java -cp /path/to/hello hello.hello

上面将hello/文件夹添加到类路径中,然后您可以使用其完全限定名称来运行主类。

答案 1 :(得分:0)

在这里你定义了包,所以你不能直接运行你编译的类,因为 JVM 无法找到你的类,因此你必须编写hello目录的路径运行命令。 例如:

  

java -cp c / workspace / hello hello

答案 2 :(得分:0)

我尝试你的代码。看看问题是什么。如果将“hello.java”放在名为“JavaTrials”的文件夹中并将其编译为“javac hello.java”,则会在那里编译并生成“hello.class”。此命令不会为包生成名为“hello”的文件夹。

您编译的代码“hello.class”应该位于名为“hello”的文件夹中,该文件夹是包的名称。然后你必须从“hello”文件夹中运行命令“java hello.hello”,而不是从包含文件夹中运行。

更好的方法是在编译之前将代码放在名为“hello”的文件夹中。此文件夹代表包。然后使用命令“javac hello / hello.java”从“hello”文件夹的外部编译它。然后你可以通过“java hello.hello”

来运行它

作为旁注,在java编码中,传统类名以大写字母开头。更好地使用“Hello”而不是“hello”。

答案 3 :(得分:-5)

删除第一行"打包你好;"