首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何从命令行执行java .class

如何从命令行执行java .class
EN

Stack Overflow用户
提问于 2009-08-14 18:52:30
回答 7查看 415.3K关注 0票数 126

我有一个编译好的java类:

Echo.class

public class Echo {
    public static void main (String arg) {

            System.out.println(arg);
    }
}

I 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代码转换为可以从命令行运行的形式的最简单方法是什么?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2009-08-14 18:53:53

尝试:

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

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

票数 129
EN

Stack Overflow用户

发布于 2018-10-04 14:12:55

使用Java11,您将不必再经历这种繁琐的工作了!

相反,您可以这样做:

> java MyApp.java

你不需要事先编译,因为这一切都是一步完成的。

您可以在这里获得Java11JDK:JDK 11 GA Release

票数 32
EN

Stack Overflow用户

发布于 2009-08-14 18:54:35

您需要指定类路径。这应该可以做到:

java -cp . Echo "hello"

这将告诉java使用. (当前目录)作为其类路径,即查找类的位置。请注意,当您使用软件包时,类路径必须包含根目录,而不是包子目录。例如,如果您的类是my.package.Echo,而.class文件是bin/my/package/Echo.class,则正确的类路径目录是bin

票数 18
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1279542

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档