【问题标题】:JDeveloper Deploy Desktop Application JAR With LibrariesJDeveloper 使用库部署桌面应用程序 JAR
【发布时间】:2014-11-03 16:53:40
【问题描述】:

使用 JDeveloper 12.1.3.0.0,我创建了一个使用 Oracle JDBC 和 BC4J Oracle 域库(通过项目属性 -> 库和类路径添加它们)的 Java 桌面应用程序。一切都在 JDeveloper 中编译并运行良好,但我正在努力部署一个有效的 JAR 文件。此 JAR 文件需要包含库,因为它将直接放置在客户端计算机上。

当前失败的尝试:我在项目属性中创建了一个部署配置文件。此配置文件将我的 MainForm.java 设置为主文件,并包含一个文件组(类型:库),其中两个必要的库都被检查为贡献者。

使用此配置文件部署 JAR 后,我收到一条错误消息,指出“发生了 Jave 异常”。使用“java -jar archive.jar”通过命令提示符运行 jar,我得到以下跟踪:

拿起 JAVA_TOOL_OPTIONS: -Djava.vendor="Sun Microsystems, Inc." 线程“主”java.lang.NoClassDefFoundError 中的异常:oracle/jbo/JboException 在 java.lang.Class.getDeclaredMethods0(本机方法) 在 java.lang.Class.privateGetDeclaredMethods(未知来源) 在 java.lang.Class.getMethod0(未知来源) 在 java.lang.Class.getMethod(未知来源) 在 sun.launcher.LauncherHelper.getMainMethod(未知来源) 在 sun.launcher.LauncherHelper.checkAndLoadMain(未知来源) 引起:java.lang.ClassNotFoundException:oracle.jbo.JboException 在 java.net.URLClassLoader$1.run(未知来源) 在 java.net.URLClassLoader$1.run(未知来源) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(未知来源) 在 java.lang.ClassLoader.loadClass(未知来源) 在 sun.misc.Launcher$AppClassLoader.loadClass(未知来源) 在 java.lang.ClassLoader.loadClass(未知来源) ... 6 更多

我做错了什么?非常欢迎任何建议。

【问题讨论】:

    标签: jar jdeveloper


    【解决方案1】:

    在与 Oracle 代表进行了一些沟通后,JDeveloper 本身显然无法做到这一点。限制是 Java 不能进入打包在另一个 JAR 中的 JAR 文件。建议我使用One-Jar,它将从库中提取和打包必要的类,或者创建一个脚本,将类路径设置为外部库。

    【讨论】:

    • [PLUS ONE] 谢谢,它确实拯救了我的一天!
    • @HumanBeing 如果它完全相关,我的最终解决方案是从 JDeveloper 项目中提取 .java 文件并通过 cmd 提示符手动编译它们。当我必须修改它时,重新部署项目变得非常容易。很高兴我的失败能帮上忙。
    猜你喜欢
    • 2015-07-29
    • 2015-05-30
    • 2018-05-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-23
    • 1970-01-01
    • 2010-09-14
    相关资源
    最近更新 更多