我在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。我不知道是否或如何修改它。 谢谢你的帮助。
答案 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:流程