我的程序有问题。我在 Netbeans 中开发,当我运行程序时它运行良好。我构建了它,创建了一个 *.jar 文件,并在我的 JNLP 文件中更新了它。
麻烦来了。当我在我的程序中使用 javax.mail.* 时,jnlp 包只是忽略了它的所有部分。
为了清楚起见,我正在开发一个邮件客户端。现在我可以查看收件箱中的邮件数量了。这就是程序在 JNLP 中忽略的内容。
谢谢你的帮助。
我的程序有问题。我在 Netbeans 中开发,当我运行程序时它运行良好。我构建了它,创建了一个 *.jar 文件,并在我的 JNLP 文件中更新了它。
麻烦来了。当我在我的程序中使用 javax.mail.* 时,jnlp 包只是忽略了它的所有部分。
为了清楚起见,我正在开发一个邮件客户端。现在我可以查看收件箱中的邮件数量了。这就是程序在 JNLP 中忽略的内容。
谢谢你的帮助。
合并一个 javamail 实现。从许可的角度来看,Apache Geronimo 实现很方便。也就是说,获取一个包含 javax.mail 实现的 JAR 文件(除了 j2ee 内置的那个)并将其打包到您的 JNLP 包中。
我认为您需要做的就是签署 java 邮件实现(本机或某些第 3 方)JAR
,将它们添加到您的JNLP
文件中:
<resources>
<jar href="mail-jar1"/>
<jar href="mail-jar2"/>
<!-- more -->
</resources>
...然后将它们与您的主服务器一起JAR
放到您选择的网络服务器上。
为了让您的程序能够访问网络并与邮件服务器通信,您需要对所有 jars 进行签名并在 jnlp 文件中包含以下代码:
<security>
<all-permissions/>
</security>
如果使用 Java EE 邮件实现,则需要在库中包含两个 jar 文件:
<resources>
<jar href="lib/activation.jar"/>
<jar href="lib/mail.jar"/>
</resources>
我喜欢将所有库 jar 文件放在一个单独的文件夹中,这是 netbeans 通常在构建您的应用程序时为您所做的(查看 dist 文件夹)。
您还问过“您能否提供一种在我的计算机上运行该程序的方法,无需 netbeans 和命令提示符?”
这几乎就是 jnlp 的全部意义所在。您可以从 Web 浏览器启动该程序。Java 教程包含许多这样的示例: 例如:JButton 示例
如果这是您希望部署应用程序的方式,您可以阅读Web Start 开发人员指南。