IDEA构建可执行jar的区别

2019-01-27  本文已影响0人  高小北

    这几天在搞一个后台运行的分布式程序,使用rmi来实现分布式架构,程序主要功能是从solr索引读数据insert到mysql数据库中,以供业务系统使用。

    调试完程序后构建runnable jar时,由于Client是用eclipse构建的jar所以一切都比较顺利,右键项目=》export=》runnable jar,然后选择Main Class,依赖jar的目录以及Manifest的生成方式路径等,最终将源码生成运行jar,依赖jar为运行jar同级目录的一个前面设置好的subFolder子目录下,在Manifest中有自动生成的关于依赖jar的路径,其他配置文件的目录直接采用复制粘贴方式,例如conf配置目录等,此时runnable jar运行正常,直接使用java -jar xxx.jar的方式可运行。

    但是回到Server服务端,服务端是用idea构建的项目,在生成jar包时,build artifact时无法直接方便地将依赖jar build到指定的目录,只能在artifact配置中修改,如果依赖的jar很多的话需要一条一条的修改依赖jar的目录,也可以在各种编辑器中使用列模式编辑,但依旧还是不如eclipse方便,到这里才发现这点,所以打可运行jar包时还是使用eclipse更便捷。

    在build artifac之前本来是想使用maven package的方式生成jar包的,结果发现idea报错,是有关idea安装目录下的jre64目录的tools.jar的错误,上网找了一下资料说是这里是idea读取jar时的顺序导致,如果这里有jre64目录的话,这个目录的级别比project中配置的sdk的级别要高,优先读取此配置的jre,所以导致错误出现。

    解决的方法就是:我直接rename了这个jre目录,让idea找不到此目录,那么idea就会使用配置好的sdk中的本地jdk了。。。

上一篇下一篇

猜你喜欢

热点阅读