java - 在 Java Webstart 中更改工作目录

标签 java java-web-start jnlp

有没有办法在运行 Java Webstart 时更改 JVM 的工作目录? 当我使用 system.setProperties("user.dir", newDir) 它设置它(system.getProperties() 显示它确实如此)但忽略它。

这是 Java Webstart 中的一个限制,总是使用我启动 jnlp 文件的工作目录吗? 我正在使用 jnlp 文件中的所有权限。

请帮忙!

编辑:无论我现在做什么,我的 webstart 总是使用 user.dir 来保存文件。令人沮丧!

最佳答案

我自己过去也有过这个问题,但我总是发现,最终,我并不需要它。我为什么这么说?

因为您的 java web start 应用程序不像从 Program Files 运行的可执行文件。它甚至不像大多数程序那样存在于您的计算机上(它被分解成一堆不同的文件并由 JVM 重新组装)。因此,你不能说程序有自己的目录来做它需要做的事情。

但这并不需要。原因如下:

  1. Java 有 Preferences API在您需要存储数据时提供帮助。 Preferences API 的底层工作原理与 JWS 一样神秘,因此它们非常适合。无论哪种方式,如果您需要将内容写入文件,您应该检查此 API 以查看它是否能满足您的需求。
  2. 如果您需要为用户写入文件,那么提示他们并允许他们选择位置显然意味着您不会使用当前工作目录来读/写文件。
  3. 如果您需要序列化对象,您应该按照@AndrewThompson 的建议使用user.home 资源创建一个程序目录。这将是“您的”目录,与 Program Files 中的目录一样好(事实上,更好)(例如,如果您在 Windows 上运行)。

总而言之,在所有情况下(我遇到过的情况),都没有必要更改您当前的工作目录。如果您需要自己的文件夹,请在 user.home 中创建一个(因为您不会在那里遇到文件权限问题)。

关于java - 在 Java Webstart 中更改工作目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19710762/

相关文章:

java - 来自字符串的位图

java - 如何使用 OS X 2012-006 的 Java 取回 OS X 中的 Java 首选项?

java - Mac OS X 10.5 上的 SWT 和 Java WebStart

java - 启动 Web 启动应用程序时出现 NullPointerException

java - 从按钮菜单选项返回一个值

java - 更新后 setAutoCreateRowSorter 无法正确对表列进行排序

java - Spring mvc过滤器不生效

java - JNLP找不到使用Maven构建的主类

java - 使用 Java Web Start 进行 log4j 配置

java - 为什么我得到 : No valid JFX runtime