从 netbeans 创建后将可执行 jar 文件获取到 运行
Getting an executable jar file to run after creation from netbeans
我的应用程序中包含一些已添加到库中的 jar 文件
在 net beans 中,这些可以被读取和使用
我试图通过清理和构建在 netbeans 中创建一个可执行文件,并且我在构建打包集中拥有所有必要的属性,但是当我尝试双击创建的 jar 时,没有任何反应。它应该 运行 来自我的 Main class
的罐子
现在我尝试转到 cmd 终端并从那里使用:
java -jar myapp.jar
我添加了 3 个不同的 jar,包括 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.run(Unknown Source)
at java.net.URLClassLoader.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
我正在使用 windows 8 和 netbeans 8.0.2
您如何管理您的应用程序依赖项?我鼓励您不要简单地 "add jars to your netbeans" - 使用某种 project/dependency 管理工具 - Maven or Gradle。
然后,如果是 Maven,请检查此答案:
将您的应用程序移植到 maven/gradle 项目不会花费太多时间(但不幸的是,学习一种工具肯定会......)并且您会获得很大的灵活性。
您可以使用资源管理器访问 .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/
文件夹中
- 可能性 2
sqlite-jdbc-3.8.7.jar 的内容添加到 appxx.jar
案例一
将 lib 文件夹放在 appxx.jar 所在的同一文件夹中
案例二
必须开箱即用
我的应用程序中包含一些已添加到库中的 jar 文件 在 net beans 中,这些可以被读取和使用
我试图通过清理和构建在 netbeans 中创建一个可执行文件,并且我在构建打包集中拥有所有必要的属性,但是当我尝试双击创建的 jar 时,没有任何反应。它应该 运行 来自我的 Main class
的罐子现在我尝试转到 cmd 终端并从那里使用:
java -jar myapp.jar
我添加了 3 个不同的 jar,包括 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.run(Unknown Source)
at java.net.URLClassLoader.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
我正在使用 windows 8 和 netbeans 8.0.2
您如何管理您的应用程序依赖项?我鼓励您不要简单地 "add jars to your netbeans" - 使用某种 project/dependency 管理工具 - Maven or Gradle。
然后,如果是 Maven,请检查此答案:
将您的应用程序移植到 maven/gradle 项目不会花费太多时间(但不幸的是,学习一种工具肯定会......)并且您会获得很大的灵活性。
您可以使用资源管理器访问 .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/
文件夹中
- 可能性 2
sqlite-jdbc-3.8.7.jar 的内容添加到 appxx.jar
案例一
将 lib 文件夹放在 appxx.jar 所在的同一文件夹中案例二 必须开箱即用