在bluemix上的java自由应用程序中运行一个jar

时间:2016-08-18 08:02:50

标签: java jar ibm-cloud

我在java中使用Bluemix中的对话框应用程序。我在Elcipse上有另一个java项目,为了让它变得简单,我决定将它变成一个可运行的jar。

因此,在我的对话框应用程序中,我想运行一个jar,获取输出并使用它。我正试图在DemoServlet.java中使用它:

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

只有当我的用户有特定行为时,才能使用此jar的输出非常重要。

我收到了一个错误:

  

App / 0无法运行程序“java”:error = 2,没有这样的文件或目录   App / 0 [错误]服务错误:无法运行程序“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中我放了我的罐子,以及我需要的每个罐子。 我从未使用cf命令行,我没有更改manifest.yml。我不知道是否或如何修改它。 谢谢你的帮助。

2 个答案:

答案 0 :(得分:0)

确保指定java可执行文件的完整路径。以下内容应该有效:

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

答案 1 :(得分:0)

感谢IBM的布什先生,我有答案。在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:罐子路径
问题3:流程