2015-09-17 67 views
0

所以我建立了一個JAR使用外部JAR庫(B.jar)變量沒有更新

內B.jar那裏有隻1變量(a.jar文件)

private static final byte myByte = 1; 

我運行在一個單獨的計算機a.jar文件的主類,以不同的Java虛擬機是這樣的:

java -classpath A.jar;B.jar; main 

的問題是,當我釋放B.jar的新版本與myByte = 2,a.jar文件仍讀取myByte爲1而不是2.

我已經確定舊的和新的B庫沒有編譯/包含在A.jar中。

爲什麼A.jar不使用B.jar外部參考?但它的使用就像舊版B.jar的緩存版本一樣?

+0

如果你從eclipse導出jar文件,嘗試將它導出到不同的文件夾中,也許Eclipse會變得困惑並且釋放一個緩存版本,請嘗試先執行一個項目 –

回答

1

Eclipse不會自動重新掃描Java構建路徑上的外部jar文件的內容 - 它們不僅僅是在內容的大部分時間改變內容並保留在相同的位置。嘗試從Java Build Path中移除jar,退出「屬性」對話框,然後將其添加回來。

+0

我的意思是,當我在Java VM上運行jar時,它仍然顯示舊價值,而不是新價值。對不起,我沒有在我的問題上說清楚 – feco

+0

這可能是舊值已內聯。您在A中使用過的任何地方。 – nitind