2014-11-03 2 views
0

Используя JDeveloper 12.1.3.0.0, я создал приложение Java Desktop, которое использует Oracle Oracle JDBC и BC4J Oracle Domains (добавляет их через Project Properties -> Libraries and Classpath). Все компилируется и отлично работает в JDeveloper, но я изо всех сил пытаюсь развернуть рабочий JAR-файл. Этот JAR-файл должен включать библиотеки, поскольку он будет размещен непосредственно на клиентской машине.JDeveloper Развертывание рабочего приложения JAR с библиотеками

Текущая неудачная попытка: я создал профиль развертывания в свойствах проекта. Этот профиль имеет мой файл MainForm.java в качестве основного файла, и я включил файловую группу (Type: Libraries) с обеими необходимыми библиотеками, проверенными как вкладчики.

После развертывания JAR, используя этот профиль, появляется сообщение об ошибке «Возникло исключение Jave». Запуск баночку через командную строку с помощью «Java -jar archive.jar» Я получаю следующий след:

Picked up JAVA_TOOL_OPTIONS: -Djava.vendor="Sun Microsystems, Inc." Exception in thread "main" java.lang.NoClassDefFoundError: oracle/jbo/JboException at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Unknown Source) at java.lang.Class.getMethod0(Unknown Source) at java.lang.Class.getMethod(Unknown Source) at sun.launcher.LauncherHelper.getMainMethod(Unknown Source) at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source) Caused by: java.lang.ClassNotFoundException: oracle.jbo.JboException at java.net.URLClassLoader$1.run(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) ... 6 more

Что я неправильно делаю? Любые предложения приветствуются.

ответ

0

После некоторого общения с представителем Oracle это, по-видимому, невозможно с JDeveloper. Ограничение заключается в том, что Java не может попасть в файлы JAR, которые упакованы в другой JAR. Было предложено использовать One-Jar, который будет извлекать и упаковывать необходимые классы из библиотек или создавать сценарий, который будет устанавливать путь к внешним библиотекам.

+0

[PLUS ONE] Спасибо, это определенно спас мой день! –

+1

@HumanBeing Если это вообще актуально, моим конечным решением было вытащить файлы .java из проекта JDeveloper и скомпилировать их вручную через подсказку cmd. Крайне просто перераспределить проект, когда мне нужно его модифицировать. Рад, что мои недостатки могут помочь. – rosst

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