在使用Eclipse开发,编译,打包常见问题如下:
1、 保证本地开发的客户端与服务端使用的jdk版本一致
2、 保证本地开发的客户端与服务端使用的依赖jar包版本一致(比如本地thrift 客户端使用的libthrift版本和服务端使用的libthrift使用的版本)。不要版本不兼容
3、 保证本地依赖的jar包版本之间不冲突(可以通过pom.xml的dependency hierarchy窗口查看依赖冲突;然后使用maven的打包工具maven-jar-plugin解决版本冲突)(引用jar包实际上是使用jar包内的class文件,如果多个jar包里都有com.test.study这个类,但是每个类的实现不同。就会导致混乱不知道引用哪一个。找不到指定类。)
4、 用Eclipse打可执行jar包时,launch configuration里经常会找不到我们要打包的工程。那是因为这个工程我们从来没有运行过。必须要编译运行通过一次,我们才可以在launch configuration里找到我们要打包的工程。如果工程中我们还依赖了第三方jar包,下面三个对应选型分别对第三方jar包做了处理。1)将依赖jar包的class文件提取出来和工程源码一起编译 ;2)将依赖jar包和工程一起打包(此时生成的manifest清单中,classpath指定了依赖jar的查找路径就在当前可执行jar包的所在目录下 ) 3)将依赖jar包 单独打到一个子文件夹下比如mylib。这个文件夹和我们的可执行jar包在一个目录(此时生成的manifest清单中,classpath指定了依赖jar的查找路径就在当前可执行jar包的所在目录下的子文件夹里eg:mylib )。
用maven 打jar包时,可以分别选择打包插件比如maven-jar-plugin(manifest中配置mainclass和classpath),maven-assembly-plugin或者maven-shade-plugin(将依赖包和工程打到一个包里)
!!!一定要弄清楚程序编译和运行时的classpath
Eclipse开发,编译,打包常见问题总结------持续更新
原文:https://www.cnblogs.com/happyliuyi/p/10824063.html