使用 JNLP / Webstart 打开文件
Open file with JNLP / Webstart
我正在尝试将文件路径作为参数传递给 Windows,以便在 JAVA
JNLP
中打开。从原始 JAR 文件开始,我创建了一个包装器 BATCH
文件 runMyJar.bat
:
java -jar "%~dp0MyJarFile.jar" %*
然后我配置 windows 使用我的 runMyJar.bat
打开所有 *.test
文件,效果很好:当我双击任何 *.test
文件时,它 运行 MyJarFile.jar
并传递 *.test
文件的路径。
现在我想对 JNLP
执行相同的操作,以使用 webstart 部署我的 JAR
,但为我的应用程序提供 Windows Open with...
。所以我的想法是再次提供一个 BATCH
包装文件:
javaws -open %1 "http://urlToMyJNLP"
不幸的是,这不起作用。当用一个文件启动这个包装器批处理时,我只是在我的 static void main
方法中为参数 args
.
接收到一个空对象
感谢任何帮助。
更新
根据答案我总结了一下 here.
可能是由于 Java 的安全更新,您将参数传递给 javaws 的方法不再有效。
您是否尝试过在 jnlp 中使用 "association" 标签来实现您的目标?
另一种选择是使用属性传递参数,然后在 java 代码中读取 属性:
javaws -J-Djnlp.arg0=%1 thefile.jnlp
我正在尝试将文件路径作为参数传递给 Windows,以便在 JAVA
JNLP
中打开。从原始 JAR 文件开始,我创建了一个包装器 BATCH
文件 runMyJar.bat
:
java -jar "%~dp0MyJarFile.jar" %*
然后我配置 windows 使用我的 runMyJar.bat
打开所有 *.test
文件,效果很好:当我双击任何 *.test
文件时,它 运行 MyJarFile.jar
并传递 *.test
文件的路径。
现在我想对 JNLP
执行相同的操作,以使用 webstart 部署我的 JAR
,但为我的应用程序提供 Windows Open with...
。所以我的想法是再次提供一个 BATCH
包装文件:
javaws -open %1 "http://urlToMyJNLP"
不幸的是,这不起作用。当用一个文件启动这个包装器批处理时,我只是在我的 static void main
方法中为参数 args
.
感谢任何帮助。
更新
根据答案我总结了一下 here.
可能是由于 Java 的安全更新,您将参数传递给 javaws 的方法不再有效。
您是否尝试过在 jnlp 中使用 "association" 标签来实现您的目标?
另一种选择是使用属性传递参数,然后在 java 代码中读取 属性:
javaws -J-Djnlp.arg0=%1 thefile.jnlp