我环顾四周,但没有一个适用于其他人的解决方案适合我。
我安装了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 hello
,java -cp . hello
或java -classpath . hello
时,它会返回错误'无法找到主要课程问候语。
我知道这是一个非常基本的问题,但我真的无法解决这个问题。
提前致谢
答案 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)
删除第一行"打包你好;"