如何从命令行执行 java .class

新手上路,请多包涵

我有一个编译的java类:

回声类

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 代码的最简单方法是什么?

原文由 joe 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 442
2 个回答

尝试:

 java -cp . Echo "hello"


假设您使用以下方式编译:

 javac Echo.java

然后有可能“当前”目录不在您的类路径中(java在其中查找 .class 定义)

如果是这种情况并列出您的目录的内容显示:

 Echo.java
Echo.class

然后任何一个都可以工作:

 java -cp . Echo "hello"

或者

SET CLASSPATH=%CLASSPATH;.

java Echo "hello"

后来,正如 Fredrik 指出的那样,您会收到另一条错误消息,例如。

线程“main”中的异常 java.lang.NoSuchMethodError: main

发生这种情况时,请阅读他的答案:)

原文由 OscarRyz 发布,翻译遵循 CC BY-SA 3.0 许可协议

使用 Java 11,您将不再需要经历这些繁琐的过程!

相反,您可以这样做:

 > java MyApp.java

您不必事先编译,因为这一切都在一步中完成。

您可以在此处获取 Java 11 JDK: JDK 11 GA Release

原文由 Ryan Lundy 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题