Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 找不到主类hello_Java - Fatal编程技术网

Java 找不到主类hello

Java 找不到主类hello,java,Java,我环顾四周,但对其他人有效的解决方案都对我无效 我安装了Java1.8.0 我的路径变量是C:\Program Files\Java\jdk1.8.0\U 05\bin 我尝试运行以下程序hello.java: package hello; public class hello{ public static void main(String[] args){ System.out.println("Hello"); } } 当我运行javac hello.java

我环顾四周,但对其他人有效的解决方案都对我无效

我安装了Java1.8.0

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

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

package hello;

public class hello{
    public static void main(String[] args){
      System.out.println("Hello");
    }
}
当我运行
javac hello.java

但是当我使用
javahello
java-cp时。您好
,或者
java-classpath。hello
返回错误“找不到主类hello”

我知道这是一个非常基本的问题,但我真的搞不懂

提前感谢

删除我提供的第一行“package hello;”

,如果您在当前目录中编译,那么您需要确保编译的类已进入名为
hello/
的文件夹

如果有,则可以运行以下操作:

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

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

这里定义了包,因此无法直接运行编译后的类,因为JVM无法找到您的类,因此必须在run命令中写入hello目录的路径。 例如:

java-cpc/workspace/hello


我试试你的代码。看看问题出在哪里。如果您将“hello.java”放在一个名为“JavaTrials”的文件夹中,并将其编译为“javac hello.java”,它将编译并生成“hello.class”。此命令不会为包生成名为“hello”的文件夹

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

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


作为旁注,在java编码中,传统的类名以大写开头。你最好用“你好”而不是“你好”

您应该使用类的全名,即
hello.hello
。更好的做法是,类的第一个字母应该大写,比如
hello
。虽然这是一个选项,但它对学习Java的工作原理没有帮助。另外,使用默认包是一种不好的做法,它起作用了。谢谢不知道我为什么还要加上那句话。一些互联网专家建议我总是包含它。因为这显然是他的第一个java Hello World程序,所以可能可以省略包。处理包和类路径是使用java的固有部分,因此,我认为不保留它是不好的,我只是说,对于某人的绝对第一个Java程序来说,不保留它可能是好的,因为包和类路径可能不会包含在绝对第一个Java程序中。只需查看每一个java Hello World程序示例:,找不到任何包。我并不是说它不重要,但你不可能在第一天就学会所有东西,即使它是使用Java的固有部分。