2012-05-28 46 views
0

我想圍繞一個jar,獲取許多參數與創建這些參數的python代碼。我該如何調用從python運行jar,同時強制它使用SDK 1.7運行?

說我已經有了:

java -jar parameter1 ... paramterN 

其中N是沒有那麼大,但是是那種對用戶的負擔重新填滿它,並再次當這些參數可以自動分配。

該jar是一個黑盒子,因此我無法改變其邏輯來計算這些參數本身。

所以,相反我想有這樣的:

python MyJarRunner.py JarPath 

時MyJarRunner會調用這個罐子的計算參數。

我的問題是,此Jar需要Java SDK 1.7才能運行而不會出現運行時錯誤。我如何確定,如果存在,我將使用SDK 1.7運行此Jar?這需要運行在不同的計算機上,而不必事先了解SDK 1.7的位置。

帶批處理腳本的解決方案也可能適用。

回答

0

,而不是使用java命令,使用"C:\Program Files\Java\jdk1.7.0\bin\java.exe" -jar ...

來檢查文件是否確實存在......

from os import path, access, R_OK # W_OK for write permission. 
PATH='C:\Program Files\Java\jdk1.7.0\' 
if path.exists(PATH) and path.isfile(PATH) and access(PATH, R_OK): 
    //execute 
else: 
    //whatever you wanna do if it doesn't exist 
+0

但我不能假設jdk 1.7在那裏。例如,在我的電腦上的「C:\ Program Files \ glassfish \ ...」 – RanZilber

+0

然後做一些像 – Epicblood

+0

我認爲應該工作 – Epicblood

0

解決辦法有兩個:

兩個假設你可以寫你的自己的主要類。

  1. 罐從來都不是一個黑盒子---它基本上是一個zip文件,這樣你就可以解開它,添加參數計算自己的主類,改變主類中的MANIFEST.MF屬性和你做。
  2. 考慮其他的部署選擇,如java webstart,它允許你下載幾個瓶子(不僅黑盒子jar,但你寫的其他)指定JDK版本和其他東西。