我今天偶然发现了这个问题,jar
打包了程序使用的所有必要的库(我使用mvn clean compile assembly:single
)和这个POM配置:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.4.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
<configuration>
<finalName>${project.artifactId}-${project.version}</finalName>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>fully.qualified.MainClass</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
</plugin>
</plugins>
</build>
显示的错误是不同的,有时是NoSuchMethod
,就像库不在那里但我解压缩jar
并且它们在那里,另一个错误是{{ 1}},但是再次NoSuchFieldError
和程序是相同的,只有在那台PC上重新编译我测试程序/ jar
它才有效。
因此,IDE /环境配置问题可能与我的jar
有关(我猜我无法以其他方式解释)。
问题是什么?
修改:添加了POM依赖项
jar