我下载了一个用Java实现的程序(在本例中为http://julian.togelius.com/mariocompetition2009/index.php).我首先尝试用Java打开Play.class文件,但它吐出一个我看不到的错误,因为控制台窗口消失得太快了.我在命令行上复制了这个,并得到以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: Play/class
Caused by: java.lang.ClassNotFoundException: Play.class
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: Play.class. Program will exit.
Run Code Online (Sandbox Code Playgroud)
我该怎么做才能让它正常运行?(如果这属于超级用户那么那很好.)
你必须在没有.class的情况下调用程序
java Play
Run Code Online (Sandbox Code Playgroud)
代替
java Play.class
Run Code Online (Sandbox Code Playgroud)
编辑
进一步解释了这个问题
(或者完整的班级名称)
例如,如果你有一个像这样定义的类:
package a.b.c.d;
public class MyClass {
public void main( String [] args ) {
System.out.println( "Hey there");
}
}
Run Code Online (Sandbox Code Playgroud)
你可以像这样编译它:
javac -D . MyClass.java
Run Code Online (Sandbox Code Playgroud)
-D.选项用于告诉编译器在何处创建包结构.在这种情况下,它是"." (当前目录)
这将创建以下目录结构
a\b\c\d\MyClass.class ( assuming windows )
Run Code Online (Sandbox Code Playgroud)
要运行它,您使用:
java a.b.c.d.MyClass // with the full package name and wihtout the .class
Run Code Online (Sandbox Code Playgroud)
看到这个.
| 归档时间: |
|
| 查看次数: |
253 次 |
| 最近记录: |