无法运行简单编译的java程序?
我在ArchLinux上,我刚刚安装了JRE和JDK,所有正确的bin文件(javac和java)都在/opt/java/bin中/ 我只是编译了一个标准的hello world,并用运行无法运行简单编译的java程序?,java,compiler-construction,javac,Java,Compiler Construction,Javac,我在ArchLinux上,我刚刚安装了JRE和JDK,所有正确的bin文件(javac和java)都在/opt/java/bin中/ 我只是编译了一个标准的hello world,并用运行javac./hello.java的javac编译了它,这就构成了一个类 现在我的问题是运行它。我运行java./helloworld.class,它会给我一个错误,即使我指向java的文件不存在: Exception in thread "main" java.lang.NoClassDefFoundErro
javac./hello.java
的javac编译了它,这就构成了一个类
现在我的问题是运行它。我运行java./helloworld.class,它会给我一个错误,即使我指向java的文件不存在:
Exception in thread "main" java.lang.NoClassDefFoundError: //helloworld/class
Caused by: java.lang.ClassNotFoundException: ..helloworld.class
(..omitted for clarity..)
Could not find the main class: ./helloworld.class. Program will exit.
您将注意到错误的第一行,它使用路径//helloworld/class
当我向java提供一个绝对路径,即java/home/foo/helloworld.class
时,它会给出相同的错误,但在第一行中用
替换路径的/
,再次使用munged
你认为哪里不对?我真的不知道它为什么要这样做。运行java时,只需传递完全限定的类名(包括包),而不是文件名
java helloworld
将查找helloworld.class
java helloworld.class
将查找helloworld/class.class当您运行java时,只需传递完全限定的类名(包括包),而不是文件名
java helloworld
将查找helloworld.class
java helloworld.class
将查找helloworld/class.class如果您不以
#java file.class
你把它当作
#javac PATH/file.java
#java路径/文件
在使用JAVA命令时,不要添加.class。您不会以
#java file.class
你把它当作
#javac PATH/file.java
#java路径/文件
使用JAVA命令时不要添加.class。实际上,您应该这样编译它
javac helloword.java
运行程序
java helloword
实际上你应该这样编译它
javac helloword.java
运行程序
java helloword
还有一件事:添加命令行选项“-classpath.”或它的短版本“-cp.”,即您的命令行应该如下所示: java-cp。地狱世界
这是如果您的类位于当前目录中。否则,应将“.”替换为可以找到类的路径 还有另一件事:添加命令行选项“-classpath.”或它的短版本“-cp.”,即您的命令行应该如下所示: java-cp。地狱世界
这是如果您的类位于当前目录中。否则,应将“.”替换为可以找到类的路径 啊。。太好了,这就解释了一切。啊。。很好,这就解释了一切。