所以希望標題能夠涵蓋jist,我知道在這種類型的東西周圍有多個帖子,我特別遇到的問題是如何爲jar設置classpath目前正在運行其中包含該類。在當前jar中創建java進程來執行類
即我使用Maven程序集插件打包了我的jar,其中包含爆炸的所有依賴關係。所以我只是試圖創建一個子進程來執行我的jar中存在的一個依賴類,從我的jar中。如果可能的話?
由於下面這裏的post爲溶液:
URL baseUrl = getClass().getProtectionDomain().getCodeSource().getLocation();
String myPath = (new File(baseUrl.toURI())).getCanonicalPath();
ProcessBuilder pb = new ProcessBuilder("javaw", "-cp", myPath,
"jp.vmi.selenium.selenese.Main", config.getSuite().getAbsolutePath());
pb.redirectErrorStream(true);
try
{
Process proc = pb.start();
InputStream is = proc.getInputStream();
BufferedInputStream bis = new BufferedInputStream(is);
int c;
while ((c = bis.read()) != -1)
{
System.out.write(c);
}
int exit = proc.waitFor();
在正確的方向的任何指針將不勝感激。
感謝,
有什麼令人信服的理由說明,爲什麼你必須在新過程中運行你的類?否則,只需調用jp.vmi.selenium.selenese.Main類的靜態main()方法就會非常簡單! –
我知道這一點。我想把它作爲一個新的過程來運行。 – buymypies