2014-10-20 43 views
0

這是我的問題。將文件傳遞給另一個具有相同JAR文件的機器

我的包的設置是:

-src 
---- foo 
-------- code.java  
---- foo.data 
-------- files I need to access 

目前我有一個包含上述所有文件,我需要訪問的罐子。我將在我的機器上運行此代碼,並將在我的機器上初始化的File對象發送到運行相同jar的另一臺機器。

我的問題是我怎樣才能獲得數據文件的相對路徑,所以當我將File對象發送到他們知道要在jar中查找的另一臺機器時?

我需要訪問數據文件,以便我可以對其執行方法。因此我需要用它創建一個新的文件(相對/路徑/到/ jar/data/files),然後我將File對象傳遞給另一臺計算機進行計算。 ())。getPath()這給了我一個像文件路徑:/ pathtojar!/ pathtofileinjar /我認爲這將會能夠使用getClass()。getResource(「data /」+「filename」在另一臺機器上查找jar,但是當試圖使用jar中的項目時,我得到了空指針。 jar中的文件是否可以使用或者是否有解決方法?

回答

1

爲什麼不在文件夾中發送相對路徑而不是文件? 然後其他程序可以使用該路徑並從jar中讀取數據。

你能嘗試使用絕對路徑,像這樣:

package resourcetest; 

import java.net.URL; 

public class ResourceTest { 

    public static void main(String[] args) { 
     new ResourceTest().test(); 
    } 

    private void test() { 
     URL res = this.getClass().getResource("/data/data.txt"); 
     System.out.println(res); 
    } 

} 

在這裏,我要訪問我的數據文件是數據/ data.txt中

的src \ resourcetest \ ResourceTest.class(此類運行並嘗試訪問數據/ Data.txt
src \ data \ Data.txt

+0

對不起,我應該使它更清楚一點,我其實只是試過(最後一段)。問題是它發現文件我想通過jar,但是當我嘗試使用它時,我得到空po內部問題。在我嘗試使用它之前,您是否認爲我需要將文件從jar複製到WD或其他東西? – 2014-10-20 18:20:26

相關問題