我正试图在终端上运行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)
我希望了解能够解决这个问题的所有组件,并能够克服关于该主题的未来问题。
感谢您的时间。
答案 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
文件所在的同一位置)运行此命令