案例:本文主要描述如何解决Java+Scala通过Maven混合编译,在本地window系统运行正常,jar包在Linux运行报错【线程“main”java.lang异常】
原因:本地window系统有Scala编译插件,Linux系统无Scala编译插件
一、报错信息
Exception in thread "main" java.lang.NoClassDefFoundError: scala/reflect/api/TypeCreator
at com.mth.data.minhangK3.controller.MinhangK3Controller.main(MinhangK3Controller.java:9)
Caused by: java.lang.ClassNotFoundException: scala.reflect.api.TypeCreator
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:352)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
... 1 more
二、解决方法:在pom.xml文件中增加“含依赖的打包插件”
<!--含依赖打包插件-->
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
三、重新打jar包:会生成两个jar包
四、使用含依赖的jar包重新上传Linux系统运行