簡體   English   中英

在運行時指定Java屬性路徑

[英]Specify path to java properties path at runtime

如果已經回答了這個問題,我謹此致歉,但我找不到與此有關的任何內容。 我有一個python程序,該程序在運行時啟動子進程,該子進程調用Java jar文件。 該命令如下所示:

# Build command line expression.
expr = self.cmmTool + " " + self.cmmIpAddress + " " + self.cmmUsername + " " + self.cmmPassword + " " + cmd + " > " + self.cmmOutputFile

# Execute command line expression.
p = subprocess.Popen(expr, shell=True)

如果我從命令行啟動python程序,一切都很好。 重要說明是jar文件將在與jar文件相同的路徑中創建SMCIPMITool.properties。 我的問題是我想將python程序作為服務運行。 當我啟動服務時,python程序可以正常運行,但是此調用存在問題。 我的python程序捕獲了此錯誤,並且該程序不會崩潰,因此它將反復嘗試執行此操作。 java文件的輸出進入上面指定的文件,如下所示:

java.io.FileNotFoundException: ./SMCIPMITool.properties (Permission denied)
java.io.FileNotFoundException: ./SMCIPMITool.properties (No such file or directory)
java.io.FileNotFoundException: ./SMCIPMITool.properties (Permission denied)
java.io.FileNotFoundException: ./SMCIPMITool.properties (No such file or directory)
java.io.FileNotFoundException: ./SMCIPMITool.properties (No such file or directory)
java.io.FileNotFoundException: ./SMCIPMITool.properties (No such file or directory)
java.io.FileNotFoundException: ./SMCIPMITool.properties (Permission denied)
java.io.FileNotFoundException: ./SMCIPMITool.properties (Permission denied)
java.io.FileNotFoundException: ./SMCIPMITool.properties (No such file or directory)

請記住,這不是我的jar文件(由super micro預編譯),因此我無法控制Java代碼。 似乎在“服務域”中運行的java文件正在嘗試將.properties文件寫入它沒有寫訪問權的位置,和/或找不到該.properties文件。 還要注意,jar和.properties文件都位於同一目錄中。 似乎當jar文件在“服務域”中執行時,實際上可能並未在jar文件所在的目錄中實際執行。

我調用java -jar時是否可以顯式指定.properties文件的路徑? 是否可以通過某種方式在JRE中將默認路徑設置為.properies文件? 我對后續步驟感到有些茫然,谷歌沒有幫助。 任何幫助將不勝感激!

使用實際代碼的復制粘貼進行編輯。 cmmTool變量包含/ path / to / jar / jarFile

解決了。 需要將我的服務運行路徑更改為jar文件和.properties文件所在的位置。 似乎我之前啟動過jar文件時,實際上是在與文件所在位置不同的位置執行了該文件。 因此,它無法在同一目錄中找到.properties文件。 這是我的/etc/init/myservice.conf的樣子(無論如何,重要的部分…….conf的較早部分都有一些我不應該分享的東西):

chdir /svbase/
expect fork

script
    exec /usr/bin/python /svbase/smapp/Main.py /svbase/config/product/smapp.xml &
end script

第一行是將服務的運行位置更改為jar文件和.properties文件所在的位置所必需的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM