2012-02-09 65 views
2

我在我的筆記本電腦上用Eclipse O.S.修改了Eclipse中的Java代碼。現在我必須在Linux O.S.上運行代碼。通過SSH。我複製了所有文件,並試圖編譯代碼。編譯進行得很順利,所以代碼中沒有錯誤。無論如何,當我試圖運行它,下面的錯誤出現在外殼:運行修改後的Java代碼時出現問題

[[email protected] models]$ java TanaModel 
    Exception in thread "main" java.lang.NoClassDefFoundError: TanaModel (wrong name:  models/TanaModel) 
     at java.lang.ClassLoader.defineClass1(Native Method) 
     at java.lang.ClassLoader.defineClass(ClassLoader.java:620) 
     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) 
     at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) 
     at java.net.URLClassLoader.access$000(URLClassLoader.java:56) 
     at java.net.URLClassLoader$1.run(URLClassLoader.java:195) 
     at java.security.AccessController.doPrivileged(Native Method) 
     at java.net.URLClassLoader.findClass(URLClassLoader.java:188) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
     at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276) 
     at java.lang.ClassLoader.loadClass(ClassLoader.java:251) 
     at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) 

你知道什麼樣的問題是我在Java代碼是新的,所以我不知道如何解決這個問題。謝謝。

+0

什麼是修改後的代碼? – 2012-02-09 22:38:39

+1

您是否在Linux機器上編譯代碼? java是否正確設置(嘗試java -version)? – 2012-02-09 22:38:50

+0

文件和類的名稱是什麼? (請準確的情況下) – smp7d 2012-02-09 22:40:29

回答

0

當您嘗試運行您的程序,嘗試調用它像這樣:

java models.TanaModel

+0

我試過了,但它給我以下信息:[ac6411 @ epigenetic模型] $ java models.TanaModel 線程「main」中的異常java.lang.NoClassDefFoundError:models/TanaModel – user1200825 2012-02-09 22:55:03

1
java.lang.NoClassDefFoundError: TanaModel (wrong name: models/TanaModel) at 

你什麼命令,我猜java TanaModel? 最有可能你的TanaModel被宣佈爲package models;

嘗試調用它像這樣:

java models.TanaModel 
+0

我試過了,但它給我以下消息:[java] models.TanaModel線程「main」中的異常java.lang.NoClassDefFoundError:models/TanaModel – user1200825 2012-02-09 22:58:16

+0

請發佈一些關於您的代碼,目錄/包佈局和代碼片段的更多信息。 – 2012-02-10 06:22:43

2
wrong name:  models/TanaModel 

這意味着它希望找到TanaModel.class的車型目錄下,但發現它在其他地方(也許是當前目錄?)。把類文件中的車型目錄,並運行它作爲

java models.TanaModel 

的Java類預計文件在反映你在源代碼中使用的封裝結構的目錄進行組織。

+0

我試過了,但是它給了我下面的消息:[ac6411 @ epigenetic models] $ java models.TanaModel線程「main」中的異常java.lang.NoClassDefFoundError:models/TanaModel – user1200825 2012-02-09 22:57:26

+0

然後你越來越近了。確保當前目錄(「。」)是類路徑的一部分(通常在CLASSPATH環境變量中設置)。 – theglauber 2012-02-09 22:59:55

+0

我修改了CLASSPATH,現在它引用了我放置所有文件的目錄,但它給了我同樣的問題。你有想法嗎? – user1200825 2012-02-09 23:08:53

1

如果這是Eclipse安全問題,這將有所幫助。

//Java Code 

try 
{ 
    AccessController.doPrivileged(new PrivilegedAction<Object>() 
    { 
     public Object run() 
     {  
       try 
       { 
       // Insert code here to do required action (get or open file) 
       } 
       catch (Exception e) 
       { 
       // Insert code to catch exception from trying to do above action 
       } 
     }  
    } 
    ); 
} 
catch(Exception e) 
{ 
// Insert code to catch failed doPrivileged() 
}