使用Apache Derby作为DBMS部署Java应用程序?

时间:2012-01-21 10:50:40

标签: java deployment derby

我开发了一个Java应用程序,它与Apache Derby作为DBMS连接数据库(插入,选择...),这个应用程序在NetBeans上正常运行,但当我将它导出到Jar中时,我在外面运行它没有NetBeans,我收到此错误:

运行此命令后

 java -jar jarre.jar

我得到这个清单:

http://i.stack.imgur.com/7xka9.jpg

我希望我的应用程序可以移植,而无需启动NetBeans 我知道我错过了一些东西,但究竟是什么,是我希望有人点亮的东西?

2 个答案:

答案 0 :(得分:3)

如果您查看打印的最后一个异常(java.net.SocketException)及其堆栈跟踪,您的JVM的Security Manager似乎不允许创建套接字。

尝试为您的应用设置合适的SocketPermission

答案 1 :(得分:2)

Derby是一个前IBM产品,他们对安全性(可能好或坏)有点狂热。在您的情况下,Derby数据库使用Security Manager API来确保许多事情是“安全的”。请参阅文档如何在Derby Server上<{3}}

第二个选项是禁用安全性;不要在客户端中安装SecurityManager。

我曾经花了大约一个星期来正确设置一切。这似乎很奇怪,因为Derby提供了示例安全文件。问题是,一旦安装了SM,它就适用于所有内容

因此,您可能需要更改非Derby部分中的代码,为代码的这些部分编写更广泛的策略文件,并执行许多难以记录的丑陋内容。我不喜欢它。在大多数情况下,感觉就像是在黑暗中刺伤。

禁用安全性通常是首选方案,除非您的代码是从头开始考虑安全性(以及您使用的所有框架)。