我的应用程序在 Java 8 及更早版本上运行良好,但无法加载不属于 Java SE 的类并且失败并出现以下问题:
class MyClass (in unnamed module @0x4d14b6c2) cannot access class
sun.tools.attach.HotSpotVirtualMachine (in module jdk.attach) because
module jdk.attach does not export sun.tools.attach to unnamed module
@0x4d14b6c2.
我最初的想法是模块化我的应用程序并确定我需要的类是否有一个公共模块来正确声明依赖关系。但是,一旦我宣布 dummy module-info.java
,javac
就开始抱怨:
modules are not supported in -source 1.6; use -source 9 or higher to enable modules
编辑:我正在指示 maven-compiler-plugin 生成与 java 6 兼容的字节码,因为我需要应用程序来支持它。实际使用的参数是-g -nowarn -target 1.6 -source 1.6 -encoding UTF-8
.
也许我遗漏了一些明显的东西,但是我如何构建一个可以与 Jigsaw 以及没有它的旧 Java 版本一起使用的 jar?