我有一个编译好的 java 类:
Echo.class
public class Echo {
public static void main (String arg) {
System.out.println(arg);
}
}
我cd
到目录并输入:java echo "hello"
我收到此错误:
C:\Documents and Settings\joe\My Documents\projects\Misc\bin>java Echo "hello"
Exception in thread "main" java.lang.NoClassDefFoundError: Echo
Caused by: java.lang.ClassNotFoundException: Echo
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Could not find the main class: Echo. Program will exit.
相对于必须使用 Eclipse IDE,以我可以从命令行运行的形式获取我的 java 代码的最简单方法是什么?
最佳答案
试试:
java -cp . Echo "hello"
假设您编译时使用:
javac Echo.java
那么有可能“当前”目录不在您的类路径中(java 在其中查找 .class 定义)
如果是这种情况并列出您的目录的内容显示:
Echo.java
Echo.class
那么任何一个都可以工作:
java -cp . Echo "hello"
或
SET CLASSPATH=%CLASSPATH;.
java Echo "hello"
后来成为 Fredrik指出您会收到另一条错误消息,例如。
Exception in thread "main" java.lang.NoSuchMethodError: main
当这种情况发生时,去阅读他的答案:)
关于java - 如何从命令行执行 java .class,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1279542/