将命令行参数传递给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