在Linux终端下运行Java Class

时间:2013-11-26 14:27:18

标签: java linux class exception terminal

我正试图在终端上运行Linux Mint下的JAVA类。

我的Java类在任何IDE中运行都很好,所以我知道这不是代码问题,但实际上这次需要从命令行运行它。但是,我现在遇到了问题。

我使用了以下命令:

java -cp . Interface

但碰巧它给了我一个java.lang.NoClassDefFoundError异常:

Exception in thread "main" java.lang.NoClassDefFoundError: Interface (wrong name: client/Interface)
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:788)
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:447)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:482)

我希望了解能够解决这个问题的所有组件,并能够克服关于该主题的未来问题。

感谢您的时间。

2 个答案:

答案 0 :(得分:4)

您的类位于包client内,因此您必须将当前目录更改为父目录并使用java -cp . client.Interface运行它。 ls应显示名为client的目录。

<current directory>
└ client
  └ Interface.class

因此,使用您在评论中提供的信息获得另一个答案时,使用上述命令行启动应用程序时,当前目录应为NetBeansProjects/ServerClient/build/classes/

答案 1 :(得分:1)

提供包名称:

java  -cp . client.Interface

从项目根目录(也就是您的bin文件所在的同一位置)运行此命令