我编写了一个程序,该程序跨越IntelliJ中的几个类,当我在IDE中对其进行测试时,它可以正常工作.但是,每当我按照教程将项目制作为.jar可执行文件时,它都不会运行.
双击out文件夹中的文件不会运行该文件,并说“ Java JAR文件“ projectName.jar”无法启动.
从终端打开它时,出现错误“找不到或加载主类”.我用了“ $java -jar projectName.jar”
我按照以下步骤操作:
>打开项目结构,工件,然后单击().
>在JAR下,来自具有依赖项的模块.
>用我的主要方法指向该类,然后单击确定.
>单击应用,然后单击确定退出.
>然后,我关闭项目结构并打开Build,然后构建Artifacts …
>然后单击构建.
>导航到〜/ IdeaProjects / projectName / out / artifacts / projectName_jar / projectName.jar
然后,我将尝试运行它,但它不会运行.我的项目既有GUI,又可以从命令行运行.当我在Terminal中编译main方法时,它可以正常工作,但是我需要一个JAR文件.我不确定我应该在问题中包括什么,因为我确定我的代码无关.我也利用Maven,不确定是否相关.在构建JAR之前,我还应该做其他事情或添加到项目中吗?
解决方法:
这可能是由于在错误的位置创建清单所导致的.
首先确保它在src / main / resources / META-INF / MANIFEST.MF中
(Intellij有时会错误地将其放置在/src/main/java/META-INF/MANIFEST.MF中)
然后,确保jar在/ java OR / resources中的src目录中寻找META-INF.这意味着:
设置文件>项目结构>工件>时, > JAR>从具有依赖性的模块中…,那么您的META-INF / MANIFEST.MF目录应以src结尾.例:
ONLY C:\Users\User\StudioProjects\Project\src\
NOT THE PREPOPULATED C:\Users\User\StudioProjects\Project\src\main\java
如果已经设置了项目结构jar,则将清单文件路径更改为:
C:\Users\User\StudioProjects\Project\src\META-INF\MANIFEST.MF
INSTEAD OF C:\Users\User\StudioProjects\Project\src\main\java\META-INF\MANIFEST.MF
标签:intellij-idea,jar,java
来源: https://codeday.me/bug/20191027/1941293.html