使用JDeveloper 12.1.3.0.0,我创建了一个使用Oracle JDBC和BC4J Oracle Domains库的Java桌面应用程序(通过Project Properties - > Libraries和Classpath添加它们)。一切都在JDeveloper中编译并运行良好,但我正在努力部署一个可用的JAR文件。此JAR文件需要包含库,因为它将直接放在客户端计算机上。
当前尝试失败:我在项目属性中创建了部署配置文件。此配置文件将我的MainForm.java设置为主文件,我包含一个文件组(类型:库),并将两个必要的库检查为贡献者。
使用此配置文件部署JAR后,收到一条错误消息“已发生Jave异常”。使用“java -jar archive.jar”通过命令提示符运行jar我得到以下跟踪:
选择了JAVA_TOOL_OPTIONS:-Djava.vendor =“Sun Microsystems,Inc。” 线程“main”中的异常java.lang.NoClassDefFoundError:oracle / jbo / JboException at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Unknown Source) 在java.lang.Class.getMethod0(未知来源) 在java.lang.Class.getMethod(未知来源) at sun.launcher.LauncherHelper.getMainMethod(Unknown Source) 在sun.launcher.LauncherHelper.checkAndLoadMain(未知来源) 引起:java.lang.ClassNotFoundException:oracle.jbo.JboException 在java.net.URLClassLoader $ 1.run(未知来源) 在java.net.URLClassLoader $ 1.run(未知来源) 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个
我做错了什么?任何建议都受到欢迎。
答案 0 :(得分:0)
在与Oracle代表进行一些沟通之后,JDeveloper本身显然无法做到这一点。限制是Java无法进入另一个JAR中打包的JAR文件。有人建议我使用One-Jar,它将从库中提取和打包必要的类,或者创建一个脚本,将类路径设置为外部库。