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

时间:2009-09-08 21:29:15

标签: java command-line java-web-start

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

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

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

<application-desc main-class="org.example.ClassName">
<argument>...

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

javaws http://example.org/launch.jnlp <some CLI args here>

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

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

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

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

3 个答案:

答案 0 :(得分:7)

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

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

命令提示符&gt; 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的直接参数也无法避免-

答案 1 :(得分:3)

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

所以你的电话可能如下:

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

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

答案 2 :(得分:2)

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

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

代码编写器捕获查询参数并从参数

中写出动态jnlp