标签: jmod

如何解压缩文件jre-9/lib/modules?

JRE-9/lib目录中(至少在Windows上),有一个新文件,modules其大小约为107 MB.是否可以提取该文件或列出其中的Java模块?

我可以看到一个名为的新工具jmod可用jdk-9/bin/jmod.exe,但是用于读取.jmod位于的文件,jdk-9/jmods它无法读取文件modules.

java jdk-tools java-9 java-module jmod

15
推荐指数
4
解决办法
3403
查看次数

在Java 9+中使用JRE运行时,我可以提供运行时编译器访问吗?

我正在将应用程序迁移到Java 10.我们的应用程序通常使用JRE运行,但我们允许用户通过捆绑tools.jar和使用反射来JavacTool按需加载实例来编译自己的自定义代码.我们的方法如下:

public static JavaCompiler getJavaCompiler() {
    String toolJarName = "tools.jar";
    File file = getResourceForClass("tools.jar");
    try {
        file = file.getCanonicalFile();
    } catch (IOException ignore) {
    }
    if (!file.exists())
        throw new RuntimeException("Can't find java tools file: '"+file+"'");
    try {
        URL[] urls = new URL[]{ file.toURI().toURL() };
        URLClassLoader cl = URLClassLoader.newInstance(urls);
        return Class.forName("com.sun.tools.javac.api.JavacTool", false, cl).asSubclass(JavaCompiler.class).newInstance();
    } catch (Exception e) {
        throw new RuntimeException("Can't find java compiler from '"+file+"': "+e.getMessage());
    }
}
Run Code Online (Sandbox Code Playgroud)

这是必要的,因为javax.tools.ToolProvider.getSystemJavaCompiler()从JRE运行时返回null.我们的方法在Java 8中运行良好,但tools.jar在Java 9中被删除了,我需要的类 …

java java-platform-module-system java-9 java-10 jmod

5
推荐指数
1
解决办法
408
查看次数

获取错误java.util.zip.ZipException:重复的条目:使用JMod插件部署应用程序时,类/META-INF/MANIFEST.MF

我使用OpenJDK9,并创建了一个父子结构来使用JLink和JMod部署应用程序。

我按照互联网上的拼图示例创建我的App结构。在使用JMod 3.0.0-alpha-1时,在获取路径必须为目录之前,然后在插件中发现了一个错误,3.0.0-alpha-2-SNAPSHOT尚不可用,因此我进行了构建,路径错误消失了但我收到新的错误。

这些错误是由我在POM文件中添加的依赖关系引起的。如果我注释了依赖关系,则项目将成功构建,但是我想使用这些依赖关系来构建项目。

引起原因:java.util.zip.ZipException:重复项:classes / META-INF / MANIFEST.MF

我已经在git上上传了项目,还在GitHub上上传了示例项目

java jlink maven java-9 jmod

5
推荐指数
1
解决办法
385
查看次数