12

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

我该怎么做呢: ?如果我们可以将 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 参数”只是被忽略了。

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

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

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

4

3 回答 3

6

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

将命令行参数发送到任何 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以 . 为前缀的直接参数-

于 2011-03-25T20:04:23.853 回答
3

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

所以你的电话可能看起来像这样:

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

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

于 2009-09-09T11:04:05.877 回答
2

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

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

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

于 2010-09-29T15:30:16.260 回答