Java Web Start 和文件夹

标签 java security permissions java-web-start

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

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

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

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

编辑

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

  • jh.jar
  • 邮件.jar

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

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

结束编辑

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

请记住,Web Start 是此类应用程序的最佳选择吗? 可以在 Web Start 部署中包含文件夹吗?我在 JNLP 文件的 XML 结构中找不到任何可以执行此操作的内容。

干杯,

安德兹

最佳答案

是的,您可以使用 WebStart 来实现此目的。

权限: 如果您需要文件系统的权限,则必须签署您的 jar 并将 all-permissions在你的 jnlp.tag 中

参数: 可以使用 application_desc 中的参数元素来提供参数。 。

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

ClassNotFoundError:

We have intermittently received ClassNotFound exceptions when running the JAR from the server which looks like Windows dropping the network connection with only part of the classes from the JAR loaded

对我来说听起来不太合理。默认情况下,所有 jar 都将在应用程序启动之前下载。如果你将“download”设置为“lazy”,则jar会在第一次需要时下载,但我猜它会在那时完全下载。

关于Java Web Start 和文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5417185/

相关文章:

java - 包含未在 XPage 中显示的计算值(类别总计)的 View

java - 获取X509证书序列号

ruby-on-rails - 如何从 Rails SQL 日志中过滤特定字段?

MySQL 错误 1449 : The user specified as a definer does not exist

PHP is_writable 总是返回 FALSE

php - Crontab 没有运行 PHP 脚本,尽管有日志

java - 按下 ENTER 后鼠标光标发生变化

java - 设置只需要等于

java - 我如何逐步查看 jetty 的源代码以查看它如何处理典型的 servlet 请求?

php - md5(uniqid) 对随机唯一 token 有意义吗?