2013-11-26 107 views
0

我試圖在終端下運行Linux Mint下的JAVA類。在Linux終端下運行Java Class

我的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

是什麼Interface'或它的'包名默認? –

+0

發佈您的代碼(儘管下面的答案可能會在頭上找到答案) – KevinDTimm

回答

3

您的班級駐留在包client中,因此您必須將當前目錄更改爲父目錄並使用java -cp . client.Interface運行它。 ls應該會顯示一個名爲client的目錄。

<current directory> 
└ client 
    └ Interface.class 

因此,使用您的評論對另一個答案給的信息,當前目錄應該是NetBeansProjects/ServerClient/build/classes/開始使用上面的命令行應用程序時。

1

提供包名稱:

java -cp . client.Interface 

運行從項目的根此命令(又名在相同的地方,就是你的bin文件)