我创建了一个使用Maven构建的简单控制台Java应用程序.是否有一种方法可以使用maven命令从命令行运行主类(不需要任何参数),如:
mvn run-app com.example.MainClass
Run Code Online (Sandbox Code Playgroud) 我实际上是在问这个问题,但是为了目标spring-boot:run:如何将 --add-opens JDK 模块配置传递给 Maven 测试
对于上下文,我尝试执行为 jdk16 中的 jdk1.8 编写的 spring-boot 1.5.1.RELEASE 代码。JDK 9 引入了模块的概念,这是一个向后不兼容的更改,但从我的研究来看,似乎有解决方法。当我运行代码时,我收到此错误:
无法使受保护的最终 java.lang.Class java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain) 抛出 java.lang.ClassFormatError 可访问:模块 java.base不会向未命名的模块“打开 java.lang”
我不想向这个旧项目添加模块,而是想通过对现有项目进行最少的修改来解决这个问题。我需要做什么才能运行我的应用程序而不添加模块?我知道可行的解决方法是下载 JDK 8 并用它运行代码,但这似乎不是一个好的解决方案。