1

我正在使用 Netbeans RCP 开发应用程序。project.properties我在我的平台文件中添加了一个选项来将 jar 添加到我的类路径中:

run.args.extra=-cp:a ./appclient/glassfish/lib/gf-client.jar

我遇到的问题是,当我从 Netbeans IDE 运行它时它确实有效,但当我尝试创建一个独立的应用程序(例如为 Mac OSX 构建)时却没有。我听说project.properties当你运行一个独立的应用程序时不再考虑,当然我appclient的包含 jar 的目录在应用程序包中不再存在(所以我的 jar 没有添加到类路径中)。

我怎样才能使这个 -cp 选项适用于我的独立 Mac OSX 应用程序?


编辑:我能够为我的独立平台创建一个自定义 conf 文件,但我找不到将我的 jar 添加到类路径的方法,我不知道要使用哪些选项。

编辑:我发现我需要你认可的机制来实现它。所以我在我的 app.conf 文件中添加了以下命令:

J-Djava.endorsed.dirs=/Users/altanis/appclient/glassfish/lib/gf-client.jar

但是当我运行 .app(mac 应用程序)时,我得到了这个错误:

-J-Djava.endorsed.dirs=/Users/altanis/appclient/glassfish/lib/gf-client.jar: No such file or directory

路径是正确的。我需要做一些特别的事情来让 JVM 意识到这一点吗?我按照教程以及作者在评论中的某处说:

没错,但是 package-appclient 会为您复制所有内容,您应该能够使用认可机制将其放在类路径中。解压由此创建的 jar 并将您需要的所有内容(jar)添加到您的应用程序安装程序中。然后,您可以使用 app.conf 中的背书 (-J-Djava.endorsed.dirs=${GFCLIENT_PATH}) 机制将其放在应用程序类路径中。这样,您应该能够与您的客户一起部署它。

4

2 回答 2

1

我认为,创建一个新库是更好的方法。

  1. 使用所需的 jar 创建模块类型库
  2. 在您的模块中添加对创建模块的依赖项(类型包装库)
于 2012-12-15T08:20:46.173 回答
0

您必须将条目添加Class-path到您的应用程序的MANIFEST.MF 例如

Class-Path: apache-commons-2.1.jar ejb-api-3.0.jar

所有这些jars都应该在您的应用程序的根目录中您的应用程序
应该具有下一个结构

MyApplication.jar  
/META-INF  
/META-INF/MANIFEST.MF  
/apache-commons-2.1.jar  
/ejb-api-3.0.jar  
/com/package/classes  

或者你可以使用jarJDK 的工具来创建一个 jar
在这里阅读更多Oracle doc

于 2012-12-13T11:11:38.350 回答