【问题标题】:Enable preview features with jlinked java launcher使用 jlinked java 启动器启用预览功能
【发布时间】:2019-10-16 23:25:50
【问题描述】:

我正在使用 Java 13 预览功能,但在 jlink 中找不到将“--enable-preview”标志添加到 jlink 生成的启动器脚本内的 java 命令的选项。

如您所见,生成的启动器脚本是

#!/bin/sh
JLINK_VM_OPTIONS=
DIR=`dirname $0`
$DIR/java $JLINK_VM_OPTIONS -m wla_server/net.saga.snes.dev.wlalanguageserver.Main $@

但是,我不知道如何使用 jlink 命令生成带有JLINK_VM_OPTIONS=--enable-preview 的脚本。

我的 jlink 命令是

$JAVA_HOME/bin/jlink \
  --module-path target/classes:target/dependency \
  --add-modules ALL-MODULE-PATH \
  --launcher launcher=wla_server/net.saga.snes.dev.wlalanguageserver.Main \
  --output dist/linux \
  --vm=server \
  --compress 2 

【问题讨论】:

  • 代码在哪里?你面临什么困难?
  • @MerajalMaksud 代码有什么关系? jlink 用于创建可执行文件(运行时映像),并且 OP 希望将提到的选项传递给它
  • @SummersPitman 不 jlink 创建一个目录结构,该目录结构包含一个带有 java 可执行文件的 bin 文件夹,该可执行文件接受 --enable-preview? (OpenJDK13 在 Windows 上可以)
  • @CarlosHeuberger 这似乎与使用--launcher 选项时jlink 生成的单独启动脚本有关。我认为没有办法自动将--enable-preview 添加到生成的命令中,因此您必须编辑脚本以手动包含它。
  • @JornVernee 我同意,必须编辑脚本或者jpackage 可以提供帮助(Java 14?)

标签: java jlink java-13


【解决方案1】:

我已将以下 sed 命令添加到我的构建脚本中:

sed -i 's/JLINK_VM_OPTIONS=.*/JLINK_VM_OPTIONS=--enable-preview/' dist/linux/bin/launcher

这会编辑启动器脚本:

#!/bin/sh
JLINK_VM_OPTIONS=--enable-preview
DIR=`dirname $0`
$DIR/java $JLINK_VM_OPTIONS -m wla_server/net.saga.snes.dev.wlalanguageserver.Main $@

效果很好。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-18
    • 1970-01-01
    • 2020-07-14
    • 2021-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多