【问题标题】:Java Web Start - Access environment variable java.io.tmpdir in jnlpJava Web Start - 在 jnlp 中访问环境变量 java.io.tmpdir
【发布时间】:2013-04-29 15:41:22
【问题描述】:

我尝试配置 osgi 实例和配置文件夹的路径以启动我的 Eclipse RCP 应用程序。为此,我在 jnlp 文件的标记中配置以下内容:

<!-- Information usually specified in the config.ini -->
<property name="osgi.instance.area" value="@java.io.tmpdir"/>
<property name="osgi.configuration.area" value="@java.io.tmpdir"/>

不幸的是,“java.io.tmpdir”被解释为文字而不是环境变量。配置 user.home 的路径可以正常工作,但这不是我想要的,因为我的用户主目录位于网络设备上,而我的 %TEMP% 位于我的本地驱动器 c 上:

在任何示例中,我发现使用 user.home 的配置如下:

<!-- Information usually specified in the config.ini -->
<property name="osgi.instance.area" value="@user.home/Application Data/demo"/>
<property name="osgi.configuration.area" 
   value="@user.home/Application Data/demo"/>

我在 Windows Vista 上使用 JDK 1.6.0_27 和 1.6.0_37 进行了尝试。

感谢您的帮助,因为我在这个问题上停留了一段时间。

【问题讨论】:

  • “不幸的是,“java.io.tmpdir”被解释为文字而不是环境变量。” 我认为这很幸运。如果您可以在运行时将该数据提取到 JNLP 中,那将是一个安全漏洞。
  • 至少可以使用“user.home”环境变量。

标签: java eclipse-rcp environment-variables jnlp java-web-start


【解决方案1】:

The Eclipse runtime options 记录哪些参数可用以及可以寻址的位置(例如 osgi.user.area、osgi.install.area...)。查看位置部分。请注意,在本地或通过 WebStart 启动 Eclipse RCP 时,这些位置的解析方式不同。

【讨论】:

  • 感谢您的链接。因为无论如何我都必须解决这个问题,所以我决定编写自己的 Launcher 类并在那里设置属性。
【解决方案2】:

有点晚了,但我仍然想发布我的解决方案:

我编写了一个自定义 Launcher 类并在我的 JNLP 文件中配置它()。 在我的 Launcher 类中,我设置了所需的变量,然后我调用了 Equinox Launcher 的 main 方法。 我知道这不是一个非常迷人的解决方案,但至少它有效;-)

【讨论】:

    猜你喜欢
    • 2010-12-27
    • 1970-01-01
    • 1970-01-01
    • 2011-04-26
    • 1970-01-01
    • 2010-11-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多