我对Java Web Start的状态感到困惑.在Oracle的支持路线图中,我们可以读到:
支持部署技术
Web部署技术由Java插件和Web Start技术组成,具有更短的支持生命周期.对于通过Java SE 8的主要版本,Oracle为这些技术提供了五(5)年的Premier支持.扩展支持不适用于部署堆栈,并且不可用于Java SE 9以外的支持.有关详细信息,请参阅Oracle Lifetime支持策略.
可以在2017年6月之后的任何时候删除Java SE 6和Java SE 7的部署技术. 虽然部署堆栈可能包含在Java SE 9或更高版本中,但Java SE 8是部署堆栈的推荐且仅受支持的版本.
现在,我们已经知道applet和Java插件将在未来的Java版本中被删除,但我从来没有读过有关Java Web Start是删除的候选者.
在Oracle的Java平台标准版部署指南#Java入口(Java 9文档页面)中,Java Web Start被宣传为已弃用的applet技术的替代方案:
虽然JDK 9中提供并支持,但Applet API和Java插件在未来版本中标记为已弃用,准备删除.applet和嵌入式JavaFX应用程序的替代方案包括Java Web Start和自包含应用程序.
我什么都不担心,或者我错过了关于Java Web Start弃用的公告?
那些可能不想读那么多的人的摘要:
我想知道是否有办法将"ad-hoc"命令行参数传递给javaws可执行文件.我已经知道如何在JNLP文件中指定它们:
<application-desc main-class="org.example.ClassName">
<argument>...
Run Code Online (Sandbox Code Playgroud)
虽然这可以用于我想要完成的任务,但我将此视为一种解决方法.我试过了
javaws http://example.org/launch.jnlp <some CLI args here>
Run Code Online (Sandbox Code Playgroud)
但我认为,"这里的一些CLI args"被忽略了.
如果我们可以将ad-hoc命令行参数传递给javaws,那么javaws应用程序可能更像"一等公民""普通应用程序".例如,我们可以传递要打开的文件的文件名.比如说
javaws [options] http://example.org/launch.jnlp my_file.jpg
Run Code Online (Sandbox Code Playgroud)
在JNLP中使用硬编码的参数不满足此用例.