从netbeans创建后获取可执行jar文件

时间:2015-03-28 10:10:23

标签: java netbeans jar executable

我的应用程序中包含了一些jar文件,我已将其添加到库中 在net beans中,可以读取和使用

我试图通过Clean和build在netbeans中创建一个可执行文件,并且我在构建包装集中拥有所有必需的属性,但是当我尝试双击jar时,没有任何反应。它应该从我的Main类运行jar

现在我尝试去cmd终端并使用以下方式进行:

java -jar myapp.jar 

我添加了3个不同的罐子,包括sqlite-jdbc3.8.7,AbsoluteLayout,miglayout

但返回的是:

Exception in thread "main" java.lang.RuntimeException: Could not load SQLite JDBC driver
        at myapp.database.DatabaseConProvider.<init>(DatabaseConPr
ovider.java:18)
        at myapp.presenter.AppPresenter.<init>(AppPresenter.java
:32)
        at myapp.Main.main(Main.java:17)
Caused by: java.lang.ClassNotFoundException: org.sqlite.JDBC
        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)
        at java.lang.Class.forName0(Native Method)
        at java.lang.Class.forName(Unknown Source)
        at myapp.database.DatabaseConProvider.<init>(DatabaseConPr
ovider.java:16)
        ... 2 more

问题似乎是它无法访问已添加到项目中的jar文件,因为一旦我执行clean并在项目中构建/ dist文件夹只有myapp.jar但是也应该有README .txt和一个包含所有库的lib文件夹。如下所示:

http://netbeanside61.blogspot.co.uk/2009/08/making-executable-desktop-application.html

我正在使用带有netbeans 8.0.2的Windows 8

2 个答案:

答案 0 :(得分:1)

使用资源管理器,您可以转到.jar文件的结构。 (或者将扩展名.jar重命名为.zip)

  • 可能性1
    看看MANIFEST.MF就像是

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.9.4
Created-By: 1.7.0_51-b13 (Oracle Corporation)
Class-Path: lib/sqlite-jdbc-3.8.7.jar
X-COMMENT: Main-Class will be added automatically by build
Main-Class: Find

此处sqlite-jdbc-3.8.7.jar位于GUIFormExamples.jar外的lib/文件夹中

enter image description here

  • 可能性2
    sqlite-jdbc-3.8.7.jar的内容被添加到appxx.jar

enter image description here


  • 案例1 将lib文件夹放在appxx.jar所在的文件夹中

  • 案例2 必须开箱即用

答案 1 :(得分:0)

如何管理应用程序依赖项?我鼓励你不要简单地将罐子加到你的netbeans&#34; - 用户使用某种项目/依赖关系管理工具 - MavenGradle

然后,如果是maven,请检查以下答案: https://stackoverflow.com/a/574650/3080422

将您的应用程序移植到maven / gradle项目不会花费太多时间(但不幸的是,学习工具肯定会......)并且您获得了很大的灵活性。