如何运行我安装的Java程序?

RCI*_*CIX 0 java

我下载了一个用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)

我该怎么做才能让它正常运行?(如果这属于超级用户那么那很好.)

Osc*_*Ryz 8

你必须在没有.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)

看到这个.