将命令行参数传递给javaws(Java WebStart)可执行文件

对于那些可能不想阅读那么多的人的摘要:

我该怎么做呢: ? 如果我们可以将ad-hoc命令行参数传递给javaws,那么javaws应用程序可能更像是“一等公民”“普通应用程序”。 例如,我们可以传递要打开的文件的文件名。

我想知道是否有办法将“ad-hoc”命令行参数传递给javaws可执行文件。 我已经知道如何在JNLP文件中指定它们:

 ... 

虽然这可以用于我想要完成的任务,但我将此视为一种解决方法。 我试过了

 javaws http://example.org/launch.jnlp  

但是,我认为“一些CLI args在这里”被忽略了。

如果我们可以将ad-hoc命令行参数传递给javaws,那么javaws应用程序可能更像是“一等公民”“普通应用程序”。 例如,我们可以传递要打开的文件的文件名。 比如说

 javaws [options] http://example.org/launch.jnlp my_file.jpg 

在JNLP中使用硬编码的参数不满足此用例。

没有什么可以混淆的。 我测试的非常直接的答案,它是完美的工作。

将命令行参数发送到任何JNLP非常简单。

命令提示符> javaws -open space arg1 space arg2 ... space arg n JNLP url

例如:

c:\>javaws -open arg1 arg2 arg3 c:\myjnlp.jnlp

但请记住一件事,我们也可以在main方法中将-open作为args[0] ,所以只需要避免使用args[0] 。 也不可能避免-open直接参数预先添加-

javaws可执行文件接受run-option -arg ,它允许被调用者向应用程序发送参数。 我认为这些附加到jnlp文件中的参数。

所以你的电话可能如下:

 javaws [options] -arg my_file.jpg http://example.org/launch.jnlp 

编辑:上述解决方案仅适用于接受-arg参数的OpenJDK的javaws。 根据这篇博客文章 ,另一个选择是你可以使用URL查询字符串参数将参数传递给JNLP文件。 这显然只有在您使用完整URL执行javaws时才有效,如果您将其作为下载链接访问它将无法工作。 我没有对此进行测试,因此可能会或可能不会。

使用参数动态生成webstart jnlp文件。

$ javaws [options] http://example.org/codewriter/write.jnlp?param1=my_file.jpg

代码编写器捕获查询参数并从参数中写出动态jnlp