2016-04-26 38 views
0

因爲我是新來的java和stackoverflow。從服務器的共享文件夾運行jar,並且該jar需要從服務器讀取一個文件

問題: 我有一個jar從它的機器(服務器A)的環境變量中讀取一個文件。 如果我遠程服務器A並運行這個罐子,文件閱讀是好的。 但我需要把這個罐子,並在共享文件夾中執行它一個批處理文件,以便能夠無需與「Java的罐子」訪問遠程服務器A.

對於批處理文件中的共享文件夾%〜DP0 MYJAR.jar」在罐子的批處理文件名前面加 %〜DP0讓我打電話給那個罐子的共享文件夾中。[來源以下鏈接]

Can I run a jar file from shared folder of remote system just by double clicking from my system?

但在運行時,罐子,jar無法找到它在服務器A中讀取的文件。以下是讀取該文件的代碼。

Properties prop2 = new Properties(); 
String propFile=System.getenv("OTHERS_HOME") + "\\conf\\FILE_TO_READ.txt"; 

當jar在運行時打印當前目錄。 當遠程訪問服務器A時,我得到了E:\ ISO_Tester。這是正確的道路。

但是從服務器A的共享文件夾在我的機器上運行時,我得到C:\ WINDOWS我認爲這是從我的本地機器上,而不是服務器A.

+0

什麼是'從它的機器的環境變量讀取的jar'? '我遠程服務器A'是什麼意思? – EJP

+0

Jar位於服務器A中,正在從服務器A讀取文件(上面的代碼)。我的意思是遠程訪問(遠程桌面連接)到服務器A,而不是通過共享文件夾訪問jar。 –

回答

0

最好的部分是,你應該是從服務器A共享JAR文件和所需文件,並針對文件的相對路徑寫入/執行代碼

這是因爲該批處理不會訪問服務器A的屬性,而是將任何可用的正在執行的機器

如果您想了解更多信息,請參閱此鏈接 Get remote env vars using Windows Powershell