传递命令行参数的javaws(Java的Webstart的)可执行(Passing command

2019-07-17 10:37发布

总结对于那些谁可能不想读那么多:

我该怎么做呢: ? 如果我们能够通过特设命令行参数传递给javaws的,然后javaws的应用程序可能是更像“一等公民”,“普通程序”。 例如,我们可以通过文件的文件名被打开。

我想知道是否有通过“特设”命令行参数的javaws可执行的方式。 我已经知道如何在JNLP文件中指定它们:

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

虽然这可以用来做什么我要完成,我把它当作一种变通方法。 我试过了

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

但是,“这里有些CLI ARGS”只是忽略了,我想。

如果我们能够通过特设命令行参数传递给javaws的,然后javaws的应用程序可能是更像“一等公民”,“普通程序”。 例如,我们可以通过文件的文件名被打开。 例如像

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

在JNLP硬编码有参数不能满足这个用例。

Answer 1:

没有什么迷惑。 非常直接的答案,我测试,它是工作perrfect。

要发送的命令行参数的任何JNLP是很简单的。

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

例如:

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

但要记住一两件事,我们可以得到-open也为args[0]的主要方法,所以才避免args[0] 此外,它是无法避免-open与prepixed直接的说法-



Answer 2:

所述的javaws可执行接受一个运行选项-arg <argument>这允许被叫发送参数给应用程序。 我觉得这些都是附加在JNLP文件中的参数。

因此,您的通话可能是这样的:

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

编辑:上述解决方案仅适用于OpenJDK的的javaws的其中接受-arg参数。 另一种选择,根据这一博客帖子 ,就是可以将参数传递到使用URL查询字符串参数的JNLP文件。 如果您执行这显然只工作javaws与完整的URL,如果你访问它作为一个下载链接将无法正常工作。 我没有测试此所以它可能会或可能无法正常工作。



Answer 3:

动态生成的参数在webstart jnlp文件。

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

该codewriter捕获的查询参数和从参数写出动态JNLP



文章来源: Passing command line arguments to javaws (Java WebStart) executable