问题标签 [jlink]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1083 浏览

java - 您可以将 jaotc(Java Ahead-of-Time 编译器)与 jlink(模块组装器/优化器来创建运行时映像)一起使用吗?

这里的目标是:

  1. 创建一个运行时映像,它自己剥离了 JRE(最小化大小)——这就是 jlink 给我们的

  2. 创建本机可执行库而不是使用字节码(改善加载时间并希望消除混淆的需要)——这就是 jaotc 给我们的

但是,没有任何好的文档可以将两者关联起来。似乎有很多矛盾的方式来处理这两个流程。

是否可以使用使用 jaotc 生成的二进制文件的 jlink 构建运行时映像?

0 投票
0 回答
801 浏览

java - Jlink 无法导出模块描述符?

我有一个 hello-world 应用程序,已编译成.jar.

现在我想使用 JLink 创建一个独立的可执行文件:

  • 这个错误是什么意思?
  • 我怎样才能解决这个问题?

我在 Ubuntu 18.04 上。


更新:

我添加了一个--add-modules标志。现在我的命令是:

我添加了一个module-info.java文件。我的源代码树:

并且module-info.java

但是,现在错误消息是:

错误:找不到模块你好

0 投票
0 回答
664 浏览

java-9 - 是否可以将 jlink 用于不同操作系统的交叉编译(捆绑)应用程序?

有一个模块化应用程序http://github.com/cuba-platform/cuba-cli可以很容易地使用 Gradle 与 jlink 捆绑:

./gradlew 包

目前,它将应用程序与 Java 10 上的自定义 JRE 映像捆绑在一起,仅在操作系统中安装了 JAVA。

在 bash 中是:

如果我在 Linux 上构建应用程序,如何为 Windows 和 Mac OS 生成应用程序包?我可以在某处提取适用于 Windows / Mac OS 的 JDK 并执行与那些特定于平台的 JDK 的链接吗?

0 投票
1 回答
747 浏览

java - 我有一个旧版本的jar,现在我想用jlink生成一个更小的jre,怎么做?

我有一个使用 java8 和 maven 的 java 应用程序,现在我想使用 jdk9 生成一个更小的 jre 来打包我的应用程序,怎么做?如果不可能,你能给我一个maven用jlink生成小的jre演示吗?我的英语不太好,对不起,谢谢。

0 投票
1 回答
808 浏览

java - JDK 9 jlink 给出错误:必须指定 --output

我是 JDK 9 的新手,并尝试使用 jlink 为简单的应用程序生成运行时。

我有以下模块描述符

我定义了几个名为 Reader.java 和 Decoder.java 的简单类,并且能够使用以下步骤编译和运行它们。

(1)下载JDK和JRE 9.0.4并解压到test目录下

(2) 在 test 目录中创建如下目录结构。

(3) 将 reader module-info.java、org/reader/Reader.java 添加到 reader 目录。将解码器module-info.java、com/decoder/Decoder .java 添加到解码器目录。

(4)导航到test/moduleExamples/readerDecoderExample目录,运行以下命令

导出 JAVA_HOME=test/jdk9.0.4 mkdir mods 导出 MODULE_PATH=test/moduleExamples/readerDecoderExample/mods

(5) 编译阅读器和解码器模块

(6) 运行解码器类

(7) mkdir mlibs

(8) 使用以下命令将模块打包到 jar 中。

(9)在步骤(8)的最后,我有一个mlibs dir,如下图

(10) 当我尝试使用以下命令构建 JRE 时

我收到以下错误。

错误:必须指定 --output

有人可以告诉我我做错了什么吗?

先感谢您!

0 投票
1 回答
454 浏览

java-9 - signed modular JAR with crypto provider cannot be linked into run-time image

I'm trying to use the jlink tool in order to build a java executable. I'm using it in the following way:

but it gives me the following error:

When I add the "--ignore-signing-information" option, it builds my executable fine, but it gives me the following warning:

And then later on, when I execute the already built executable, I get the following exception:

My question is - is there any way to use signed jars with the "jlink" tool, or is there any way to avoid the error "Non-Oracle JCE providers may not be linked into the image"?

0 投票
2 回答
1582 浏览

java - 为什么 maven-jlink-plugin 崩溃?什么是非法论据?

升级到 Java 10(从 Java 8)后,我想测试新的链接器,所以我开始使用 maven-jlink-plugin 添加以下内容:

并指定:

我什至不知道这是否足够,但它肯定不起作用,并且文档似乎专注于具有多个模块的项目。我的只有一个。当我跑步时,mvn package我得到:

运行时错误的完整输出mvn package -X是这样的:

我是否缺少更多配置?我究竟做错了什么?

0 投票
0 回答
267 浏览

java-9 - java9:使用 jlink 的 IllegalArgumentException

我正在探索 java9 并尝试按照此链接创建自定义 jre 。但我得到 IllegalArgumentException.Below 是我编译后的文件夹结构。

我能够使用默认 jre 运行我的程序。但是当我尝试使用以下命令创建自定义 jre 时:jlink --module-path out --add-modules moduleA,java.base --output customjre

我得到错误:java.lang.IllegalArgumentException

我不确定我错过了什么。任何帮助都会非常有用。

0 投票
1 回答
548 浏览

java - spring.core 的这个模块定义有什么问题?

我正在尝试开始使用 Java 的新模块系统以及 jlink,为此我使用了 ModiTect Maven 插件。我正在module-info.java为尚未定义它们的每个依赖项创建文件,以便 jlink 可以正确完成它的工作。

我需要的模块之一是spring.core来自org.springframework:spring-core:5.0.7.RELEASE. 我创建了这样的module-info.java外观:

通过这个 ModiTect 配置:

但是当我运行 jlink 时,使用以下命令:

rver\target\classes --output C:\Users\pupeno\Documents\Dashman\code\dashmanserver\target\jlink-image --launcher dashmanserver=tech.flexpoint.dashmanserver/tech.flexpoint.dashmanserver.DashmanServerApplication --ignore-签名信息

我收到此错误:

这就是我得到的几乎所有信息。模块有什么问题?有任何想法吗?

完整的堆栈跟踪看起来像这样,但我认为它没有帮助:

0 投票
0 回答
1594 浏览

java - 使用 Java 模块和 jlink 时在 Spring 中找不到类

我正在向 Spring Boot 添加模块定义,以便能够 jlink 我的项目。我遇到的错误之一是:

抛出此异常的代码如下所示:

它在这里:

https://github.com/spring-projects/spring-data-jpa/blob/master/src/main/java/org/springframework/data/jpa/repository/config/JpaAuditingRegistrar.java#L123-L128

的定义在isPresent这里https://github.com/spring-projects/spring-framework/blob/master/spring-core/src/main/java/org/springframework/util/ClassUtils.java#L329

为什么找不到类?有什么方法可以调试它以查看它为什么失败?

我将spring.data.jpa模块定义为:

所以这是需要的spring.aspects,我以这种方式定义了一个(至少现在是这样):

我正在使用 ModiTect 添加模块定义,到目前为止一切似乎都在工作,但是对于这个特定的类,我不确定缺少什么。我完整的 ModiTect 配置如下所示:

我怀疑这可能是一个错误,所以我在这里报告了它:https ://jira.spring.io/browse/SPR-17018