У меня есть два java-приложения (1,2), и я хочу запустить приложение 2 из приложения 1. Сначала я попытался создать файл .jar приложения 2 и запустить его с помощью ProcessBuilder
. Это работало, пока я не захотел найти что-то внутри приложения 2, что-то с отсутствующими пакетами и прочее.
Затем я подумал, что вместо этого я могу просто запустить application2.java из ProcessBuilder
в приложении 1, но это не кажется правильным способом сделать это? Теперь я получаю ошибки, пакеты отсутствуют, но на более ранней стадии (приложение вообще не запускается).
Я делаю это в Ubuntu. Какие-нибудь советы?
Process proc = Runtime.getRuntime().exec("/bin/bash","-c","java -jar App2.jar parameters passed to the app"); // read the input stream obtained by proc.getInputStream()
- person Roman Vottner   schedule 09.01.2014resources/WordNet-3.0/dict/index.sense
звучит как структура, похожая на maven. Я скорее уверен, что в вашей банке нет каталогаresources/..
, поэтому он не сможет найти ресурс. Откройте app2.jar с помощью f.e. 7-zip и посмотрите, есть ли запись/Wordnet-3.0/dict/index.sense
— если да, вам нужно изменить ваше приложение2, чтобы загружать ресурсы черезgetClass().getResource("/WordNet-3.0/dict/index.sense");
, а не пытаться загрузить его черезsrc/resources/...
- person Roman Vottner   schedule 09.01.2014/src/main/resources/...
, где каждый файл, указанный в этом каталоге, копируется в банку - поскольку вы, вероятно, не используете что-то подобное, как это должно получиться скопировано в банку? - person Roman Vottner   schedule 09.01.2014String file = System.getProperty("user.dir")+"/resources/Wordnet-3.0/..."
."user.dir"
будет использовать каталог, из которого была выполнена командаjava -jar ...
, а затем искать структуру подкаталога `/resources/Wordnet-3.0/... - person Roman Vottner   schedule 09.01.2014