2013-04-18 2 views
0

Вот картинка:JNLP, ProcessBuilder и файл иерархия

У меня есть раскол кода через несколько банок и библиотеки в следующей иерархии:

Main.jar 
    ---lib 
     | 
     ------ Secondary.jar 
     ------ Lib1.jar 
     ------ Libx.jar 

Основной класс в main.jar называет еще один главный класс на Secondary.jar, как это:

ArrayList<String> commands = new ArrayList<String>(); 
commands.add("java"); 
commands.add("-cp"); 
commands.add("lib"+System.getProperty("file.separator") 
+Secondary.jar+System.getProperty("path.separator")+"lib"); 
commands.add("<Secondary Main class cannonical path>"); 
System.out.printl(commands.toString().replaceAll(",","")); 
ProcessBuilder pb = new ProcessBuilder(commands); 
pb.start(); 

Когда я запускаю это из IDE и/или из командной строки (команда, что Println выход) он работает отлично. При запуске из javawebstart этот процесс завершился неудачно, потому что он не может найти Secondary Main class в пути к классам.

Я подозреваю, что это связано с тем, как JWS обрабатывает загруженные ресурсы и т. Д.

Любая идея?

+0

Почему вы используете «ProcessBuilder» в этом случае вместо прямой загрузки/запуска других классов? Обратите внимание, что Sun не позволяет апплет или JWS-приложение. для определения местоположения в локальной файловой системе, в которой приложение. установлен. Это не приложение. чтобы знать это. –

+0

Это объясняет и подтверждает мою теорию. Непосредственно работает класс, похоже, работает. Теперь нужно проверить, не влияет ли моя производительность, что послужило причиной ее запуска в другом процессе. – javydreamercsw

+0

Введен как ответ. –

ответ

1

Солнце сделало невозможным апплет или приложение JWS. для определения местоположения в локальной файловой системе, в которой приложение. установлен. Это не приложение. чтобы знать это.

+0

Включите часть для непосредственного запуска класса, чтобы я мог присудить ответ. – javydreamercsw

+0

Показать код класса, который вы хотите запустить, который содержит 'main (String [])'. BTW - управляете ли вы кодом второго класса? –

+0

Да, я контролирую весь код, связанный с этим вопросом. К сожалению, код предназначен для частного проекта, поэтому я не могу его показать. В основном он открывает экран поворота, чтобы отображать ход загрузки некоторых файлов. Не уверен, что это полезно. – javydreamercsw

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