Java Web Start和文件夹

时间:2011-03-24 09:39:58

标签: java security permissions java-web-start

我们目前有一个Java应用程序,可以部署在客户端上,也可以作为服务器的快捷方式运行。当从服务器运行JAR时,我们间歇性地收到了ClassNotFound异常,这些异常看起来像Windows只从加载JAR的部分类中删除网络连接(用户打开一个不同的屏幕,然后问题就显而易见了)。

我目前正在研究Web Start技术,以便我们运行一个快捷方式。

但是,应用程序有几个文件夹,它们需要在启动JAR的同一文件夹中(对于配置,日志等)。这些文件夹将需要所有用户的完全访问权限,以允许他们写入日志文件。配置文件夹层次结构下有许多配置文件。

该应用程序还需要访问环境用户设置(例如获取其用户文件夹)。它还需要某些命令行参数(包括用于配置的文件夹,日志文件位置,Java内存使用等)。

修改

该应用程序还包含对2个签名JAR的引用。这些是:

  • 将jh.jar
  • 的mail.jar

看起来这些是由SUN Microsystems签署的。 jh用于我们的应用程序中的帮助集成,而邮件用于电子邮件集成。

我现在已经从java2s.com下载了这些文件的最新版本,这些文件没有签名的等价文件。

结束修改

应用程序是在Netbeans中开发的,它编译单个JAR文件并将依赖的JAR复制到dist / lib文件夹。我在Netbeans中为应用程序启用了Web Start功能,并生成了JNLP文件。

牢记一切是Web开始这样的应用程序的方式? 您可以在Web Start部署中包含文件夹吗?我在JNLP文件的XML结构中找不到任何操作。

干杯,

Andez

3 个答案:

答案 0 :(得分:4)

是的,你可以使用WebStart。

<强>许可: 如果您需要文件系统的权限,则必须在罐子上签名并将all-permissions标记放在jnlp中。

<强>参数: 可以使用application_desc中的arguments元素提供参数。

<强>文件夹: 我不认为您可以在WebStart应用程序中包含文件夹,但您可以将配置文件放在jar中并从那里读取它们,或者在启动时提取它们。

<强> ClassNotFoundError:

  

我们间歇性地收到了   运行时ClassNotFound异常   从服务器看起来的JAR   像Windows放弃网络   只与部分相连   加载JAR的类

对我来说听起来不合理。默认情况下,将在应用程序启动之前下载所有jar。如果你将“下载”设置为“懒惰”,那么首先需要时会下载jar,但我猜它会完全下载。

答案 1 :(得分:0)

您可以为Java WebStart提供只读资源。获取日志更难。我建议使用您使用的日志框架中的一个标准appender来研究集中式日志记录解决方案。

答案 2 :(得分:0)

对于Java Web Start应用程序,始终建议不要在类路径中创建文件或文件夹。推荐用户的主目录来存储您的设置或数据库文件。