簡體   English   中英

在Bluemix上的Java自由應用程序中運行Jar

[英]Running a jar in java liberty app on bluemix

我在Java中的Bluemix中使用對話框應用程序。 我在Elcipse上還有一個Java項目,為了簡化起見,我決定將其轉換為可運行的jar。

因此,在我的對話框應用程序中,我想運行一個jar,獲取輸出並使用它。 我試圖在DemoServlet.java中使用它:

            Runtime runtime = Runtime.getRuntime();
            runtime.exec("java -jar SomeCoolApp.jar");

僅當我的用戶有特定行為時,才可以使用此jar的輸出,這一點非常重要。

我有一個錯誤:

App / 0無法運行程序“ java”:錯誤= 2,沒有這樣的文件或目錄App / 0 [ERROR]服務錯誤:無法運行程序“ java”:錯誤= 2,沒有這樣的文件或目錄

我了解我完全不了解bluemix的邏輯。 我需要幫助。 這是我的bluid.xml的一部分:

<property name="LIB_DIR" value="./lib" />
<property name="WEB_INF_LIB_DIR" value="./WebContent/WEB-INF/lib" />
<property name="warname" value="webApp.war" />
<path id="classpathDir">
    <pathelement location="build/bin" />
    <fileset dir="${LIB_DIR}">
        <include name="*.jar" />
    </fileset>
    <fileset dir="${WEB_INF_LIB_DIR}">
        <include name="*.jar" />
    </fileset>
</path>

然后在/ WebContent / WEB-INF / lib中放入我的jar,以及需要的每個jar。 我從未使用過cf命令行,也沒有更改manifest.yml。 我不知道是否或如何修改它。 謝謝您的幫助。

確保指定java可執行文件的完整路徑。 類似於以下內容的東西應該起作用:

File javaFile = new File(System.getProperty("java.home"), "bin/java");
Runtime runtime = Runtime.getRuntime();
runtime.exec(javaFile.getAbsolutePath() + " -jar SomeCoolApp.jar");

感謝IBM的Bush先生,我得到了答案。 在Bluemix中運行一個jar很難-我希望這篇文章很容易找到。

ProcessBuilder pb = new ProcessBuilder("/home/vcap/app/.java/jre/bin/java", "-jar", "/home/vcap/app/wlp/usr/servers/defaultServer/apps/myapp.war/WEB-INF/lib/hello.jar");
pb.redirectErrorStream(true);
Process proc = pb.start();

問題1:java路徑
問題2:jar路徑
問題3:過程

暫無
暫無

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

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