我创建了一个 java SE 应用程序,该应用程序使用 mysql java 连接器使用 mysql 数据库。我在 ubuntu 上托管了 apache 和 mysql 服务器。
我的 .jar 文件位于 apache 服务器上,还有 jnlp,
当我简单地下载 jar 文件并运行它时,它似乎可以工作,但是,当我尝试通过 jnlp 使用它时,第一个 View 出现,然后当我输入用户名和密码并单击登录按钮时,它就出现了停在那里
这是我的 JNLP 文件
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="http://servername:80/" href="" >
<information>
<title>MyProject</title>
<vendor>abd</vendor>
<icon href="icon_1.jpg"/>
<offline-allowed/>
</information>
<resources>
<j2se version="1.7+" href=
"http://java.sun.com/products/autodl/j2se"/>
<jar href="MyJar.jar" />
</resources>
<application-desc
main-class="" >
</application-desc>
</jnlp>
请让我知道错误是什么。 在服务器上,我有 80 8080 和 3306 端口作为公共(public)端口。
正如我所说,我可以使用从服务器下载的 jarfile 更新数据库,但是当我尝试通过 JNLP 运行该文件时,我卡住了。
我在 java 控制台中看到了异常
线程“AWT-EventQueue-0”中出现异常 java.lang.ExceptionInInitializerError 在com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:286) 在 java.sql.DriverManager.getConnection(来源未知) 在 java.sql.DriverManager.getConnection(来源未知) 在 MyProject.database.connect(database.java:27)
原因:java.security.AccessControlException:访问被拒绝(“java.util.PropertyPermission”“file.encoding”“read”) 在 java.security.AccessControlContext.checkPermission(来源未知)
我不知道问题出在哪里?我需要为 JNLP 或其他东西打开一些端口吗?
感谢任何帮助。
谢谢
最佳答案
想到的三件事:
- 您需要对 javawebstart 的 jar 进行签名以允许访问套接字。
- 您显然正在尝试连接到 mysql 数据库,从您的描述中不清楚该数据库在哪里以及是否允许连接到主机。
- 您是否将 mydql 驱动程序捆绑到您的 jar 中?还是以某种方式引用了它?
关于java - jar 工作 : through JNLP not working,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9474443/