我已经创建了一个桌面应用程序,所以我打算使用项目文件夹中的 dist.zip 分发软件。当我从 netbeans 运行程序时,一切正常。当我打开 launch.jnlp 文件时,框架会打开,但它不会监听 actionlistener 并且没有显示任何内容,但 jar 文件正在工作。但是,如果我打开 jar 文件而不是 jnlp 文件,则 .class 文件正在打开。但它从命令提示符运行
java -jar projectname.jar
该应用程序与数据库有连接。错误会在哪里?
我已经创建了一个桌面应用程序,所以我打算使用项目文件夹中的 dist.zip 分发软件。当我从 netbeans 运行程序时,一切正常。当我打开 launch.jnlp 文件时,框架会打开,但它不会监听 actionlistener 并且没有显示任何内容,但 jar 文件正在工作。但是,如果我打开 jar 文件而不是 jnlp 文件,则 .class 文件正在打开。但它从命令提示符运行
java -jar projectname.jar
该应用程序与数据库有连接。错误会在哪里?
这是我成功使用的 JNLP。
<?xml version="1.0" encoding="utf-8"?>
<jnlp
codebase="http://www.domain.com/tools"
href="livechat.jnlp">
<information>
<title>Live Chat</title>
<vendor>vendor</vendor>
<homepage href="www.domain.com"/>
<description>Live Chat Application</description>
<icon href="images/logo.png"/>
<icon kind="splash" href="images/logo.png"/>
<shortcut online="true">
<desktop/>
<menu submenu="sub menu name"/>
</shortcut>
</information>
<security>
<all-permissions/>
</security>
<update check="always" policy="always"/>
<resources>
<j2se version="1.6+" java-vm-args="-esa -Xnoclassgc"/>
<jar href="lib/livechat-100.jar"/>
</resources>
<application-desc main-class="package.mainclass"/>
</jnlp>
设置的方式是 jnlp 文件存储在 www.domain.com\tools\ 和 jar 文件存储在 www.domain.com\tools\lib\
在这一行,你想找到你的主类。如果您使用包(com.domain.application),您将使用 com.domain.application.mainclass
否则,您只需将主类放在引号中。
<application-desc main-class="package.mainclass"/>
确保你也签署了你的 jar 文件。罐子签名
您不必创建 XML。如果您打开记事本并将其粘贴到空白页中,然后将其另存为 filename.jnlp,它将正确保存。
您的 JNLP 文件在很大程度上取决于您存储它的 Web 服务器/服务器的文件结构,以及您的应用程序的包名称(如果您创建了一个),例如:
我将使用以下信息创建一个名为 applet1 的 java applet: 包:com.digitalck.applet1 mainclass:Applet1.java(您的主类是包含您的公共静态 void main() 方法的文件) 服务器结构:www.domain。 com/工具/库
我将 jnlp 文件存储在 www.domain.com/tools 和 SIGNED jar 文件在 www.domain.com/tools/lib
在 JNLP 文件中:
codebase="domain.com/tools"
href="livechat.jnlp"> (this assumes the file is in my codebase location)
<jar href="lib/livechat-100.jar"/>
<application-desc main-class="com.digitalck.applet1.Applet1"/>
希望这有助于澄清,我已经展示了要修改的要点,以便在不知道有关您的应用程序/小程序或如何存储文件的任何其他信息的情况下让您的工作正常工作。