【问题标题】:How to customize java options of a independent netbeans application?如何自定义独立netbeans应用程序的java选项?
【发布时间】:2012-12-13 09:59:45
【问题描述】:

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

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

我遇到的问题是,当我从 Netbeans IDE 运行它时它确实有效,但当我尝试创建一个独立的应用程序(例如为 Mac OSX 构建)时却没有。我听说project.properties 在您运行独立应用程序时不再考虑在内,当然我的包含 jar 的appclient 目录在应用程序包中不再存在(所以我的 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 意识到这一点吗?我按照this 教程和作者在 cmets 的某处说:

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

【问题讨论】:

    标签: java netbeans classpath netbeans-platform


    【解决方案1】:

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

    1. 使用所需的 jar 创建模块类型库
    2. 在您的模块中添加对已创建模块的依赖项(类型包装库)

    【讨论】:

      【解决方案2】:

      您必须将条目 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  
      

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

      【讨论】:

      • @nathan 您的应用程序是什么样的? jar文件中的编译类?你有可执行类?或者你在应用服务器上部署应用?
      • @llya 这只是一个简单的 netbeans rcp 应用程序,没有 MANIFEST.MF 没什么好看的。我编辑了这个问题,因为我发现了一种叫做认可机制的东西,它应该可以帮助我实现我想要的。
      猜你喜欢
      • 2011-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-04-28
      • 1970-01-01
      • 2016-01-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多