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

问题

我有一个编译的java类:

Echo.class

public class Echo {

public static void main (String arg) {

System.out.println(arg);

}

}

Icd到目录并输入: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.

在我可以从命令行运行的表单中获取我的java代码的最简单方法是什么,因为必须使用Eclipse IDE?

#1 热门回答(91 赞)

尝试:

java -cp . Echo "hello"

假设你使用以下编译:

javac Echo.java

那么"current"目录可能不在你的类路径中(java查找.class定义)

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

Echo.java

Echo.class

然后任何一个可能工作:

java -cp . Echo "hello"

要么

SET CLASSPATH=%CLASSPATH;.

java Echo "hello"

然后asFredrik指出你会得到另一个错误信息。

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

当发生这种情况时,去看看他的答案:)

#2 热门回答(13 赞)

你需要指定类路径。这应该这样做:

java -cp . Echo "hello"

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

#3 热门回答(13 赞)

你没有有效的main方法......签名应该是:public static void main(**String []**args);

因此,在你的情况下,代码应如下所示:

public class Echo {

public static void main (String[] arg) {

System.out.println(arg[0]);

}

}

**编辑:**请注意,Oscar也是正确的,因为你错过了。在你的类路径中,你会遇到我处理完该错误后解决的问题。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值