2012-04-07 41 views
0

我有一個使用另一個項目中的類的RMI服務器。我已經將其他項目的jar作爲庫導入到RMI中,並且它在netbeans上正常工作。儘管當我從netbeans生成的.jar運行RMI服務器時,我得到了導入類的classnotfoundexceptionJava RMI - NetBeans上的jar

Any suggestions why it would be running inside netbeans, but the jar isn't working? 

而且我不知道這是否是正確的選擇,但是,RMI我已檢查「使用專用庫文件夾」,因爲另一個項目是非常小的。

另請注意我也在其他項目上導入服務器,以便它可以使用遠程接口(儘管我猜這與問題無關)。

回答

0

當你啓動你的rmi服務器時,你在類路徑中也放入了另一個類的jar嗎?

嘗試推出從命令提示符罐子:

java -jar -classpath rmiserver.jar:lib/other.jar rmiserver.jar 
+0

我只要雙擊啓動罐子。這些庫位於與服務器jar位於同一位置的獨立文件夾lib中。這是它從NetBeans和其他項目生成的方式。 – Giannis 2012-04-07 15:12:51

+0

嘗試從命令提示符啓動服務器,如我在示例中所述。 – dash1e 2012-04-07 15:18:00

+0

我認爲導致問題的原因是.jar文件名稱上的空格。我重命名了該項目,但由於某種原因,並沒有更改jar的名稱,所以我手動更改了它。之後,服務器工作。 – Giannis 2012-04-07 20:02:37

0

如果你已經建立了項目與標準的NetBeans項目(而不是行家之一),你會看到一個lib目錄下DIST目錄在哪裏建立最終的罐子。 Netbeans將在主jar文件中構建清單,以便它將在該lib目錄中查找相對於構建jar位置的相關jar。所以,如果你把你的內置罐子在一個目錄,lib文件夾複製到該目錄,然後運行它,像這樣:

java -jar my.jar 

e.g

+ folder 
| my.jar 
+-+ lib 
    | other.jar