Вот картинка: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 обрабатывает загруженные ресурсы и т. Д.
Любая идея?
Почему вы используете «ProcessBuilder» в этом случае вместо прямой загрузки/запуска других классов? Обратите внимание, что Sun не позволяет апплет или JWS-приложение. для определения местоположения в локальной файловой системе, в которой приложение. установлен. Это не приложение. чтобы знать это. –
Это объясняет и подтверждает мою теорию. Непосредственно работает класс, похоже, работает. Теперь нужно проверить, не влияет ли моя производительность, что послужило причиной ее запуска в другом процессе. – javydreamercsw
Введен как ответ. –