IntelliJ能否将目录构建到JAR外部?如何排除目录不打包进JAR?
在IntelliJ中构建JAR时保留外部目录的配置方法
你需要的是让JAR包只包含核心代码和必要依赖,同时把指定目录放在JAR文件外部(和JAR同级),既方便文件管理器查看,又能被Launch4j生成的EXE正常访问,按以下步骤配置即可:
一、调整Artifact的输出布局
- 打开
File > Project Structure > Artifacts - 选中你正在使用的JAR制品配置,切换到右侧的
Output Layout面板:- 找到你不想打包进JAR的目标目录,右键点击它,选择
Put into Output Root(别选默认的放到JAR内部) - 如果之前已经把目录加到了JAR包里,先右键选
Remove删掉,再重新添加并设置为输出根目录
- 找到你不想打包进JAR的目标目录,右键点击它,选择
- 确认配置后点击
Apply和OK
二、构建并验证结构
执行Build > Build Artifacts > Build生成制品,打开输出目录就能看到:
- 你的主JAR文件
- 和JAR同级的外部目录(比如你想要的配置、资源类目录)
三、代码里的路径适配
因为目录在JAR外部,代码中访问这些目录时要用相对路径,举个例子:
// 访问同级config目录下的配置文件 File configFile = new File("config/settings.properties");
这样Launch4j生成的EXE运行时,会自动从自身所在目录(和JAR、外部目录同级)查找文件,不会出现访问问题。
内容的提问来源于stack exchange,提问作者Andrew J
相关产品推荐
相关产品推荐

