2016-08-18 5 views
0

Я использую диалоговое приложение в Bluemix, в java. У меня есть еще один проект java, на Elcipse, и, чтобы сделать его простым для меня, я решил превратить его в запутанную банку.Запуск jar в приложении java liberty на bluemix

Итак, в моем приложении для диалога я хочу запустить банку, вывести ее и использовать. Я пытаюсь использовать это, в DemoServlet.java:

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

Это очень важно, что я могу использовать выход этой баночки только тогда, когда мои пользователи имеют определенное поведение.

я получил ошибку:

App/0Cannot run program "java": error=2, No such file or directory App/0[ERROR ] Service error: Cannot run program "java": error=2, No such file or directory

Я понимаю, что я не понимаю всей логике 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. Я не знаю, как и как я должен его модифицировать. Благодарим вас за помощь.

+1

Не могли бы вы не просто включать в себя классы из вашей баночке в ваших встроенных артефактами и ссылаться на классы? Runtime.exec - очень тяжелый способ вызвать один класс Java из другого. –

ответ

0

Благодаря Бушу от IBM у меня есть ответ. Запуск банок в Bluemix сложно - надеюсь, что этот пост будет легко найти.

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 Path
Задача 2: баночка Путь
Задача 3: Процесс

+0

Добро пожаловать, Николас! Я также хотел бы добавить, что банки необходимо перенести в папку lib в каталоге WebContent, чтобы они были доступны после развертывания упакованного сервера. –

0

Обязательно укажите полный путь к исполняемому файлу java. Что-то вроде следующего должно работать:

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

Благодарим за помощь. Уже пробовал это. Не работает. Журналы показывают проблему с java-контуром, поэтому я работаю над этим. Но даже с правильным javaPath я думаю, что это не единственная проблема. – Nicolas

Смежные вопросы