今天遇到一个奇怪的问题:Intellij 工程(经过数次编译后保存)关闭后再打开,发现原有的 artifacts 工程设置 project structure 全部丢失了。
原因可能是,对这个工程文件夹进行了一次复制备份,备份工程打开也一样,没有了 project struecture。
最后在 project struecture 重新添加 artifacts ,create jar from modules,添加主类名后,有一个选项是:copy to the... 选中它,就激活了 MANIFEST.MF,原有的设置自动从 读回了。
对比发现,artifacts 工程信息实际上保存在 .idea 目录下的 artifacts 文件夹和 xxx.iml 中。上面问题发生时,这些文件都丢失了。
==============
其他问题:
1)找不到主类,MANIFEST.MF 中的 MainClass 是红色的。解决:在 project struture->Modules,Sources,重新 add content root。另:META-INF/MANIFEST.MF 应该在 src 目录下,如果不是,也会找不到主类。能找到主类,在 添加 artifacts 环节,就能选到主类,一定是选到,手填的尽管不报错,但是编译后还是找不到。
2)Build Artifacts 不更新,总是提示 All files is updated,解压 xxx.jar一看,里面只有 MANIFEST.MF。解决:在 project structure->Artifacts->xxx.jar,右边有一个 available emelent,是 xxx compile output,原来它默认是不添加的,也是服了!拖到 xxx.jar 底下即可。
3)IDEA 打jar包时出现 already exists in vfs解决 办法 1. 解决 办法 出现这个提示的原因是之前在 IDEA 中对这个module打过jar包了,所以module中会有一个MANIFEST.MF文件夹,提示的错误即时这个文件夹及其中的文件已经存在,所以把这个文件夹删除掉,再重新build打包即可。
4)无效的发行版问题:更改 project languge level.