美文网首页
IDEA构建可执行jar的区别

IDEA构建可执行jar的区别

作者: 高小北 | 来源:发表于2019-01-27 21:17 被阅读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了。。。

    相关文章

      网友评论

          本文标题:IDEA构建可执行jar的区别

          本文链接:https://www.haomeiwen.com/subject/gapbhxtx.html