我正在使用IntelliJ创建JAR文件,从命令行运行时正常执行,但双击它时没有任何反应。我从eclipse导出的JAR正常工作,因为我是初学者使用IntelliJ,我的猜测是我做错了。
我以这种方式导出JAR:
Project structure -> jar -> from modules and dependencies then use this
configuration to build.
答案 0 :(得分:2)
不确定为什么每个人都在玩自我执行的罐子。 只需添加一个MANIFEST.MF文件,并将完全限定的主类指定为Main-Class:my.package.MyClass
另外,请确保.jar文件类型的可执行文件类型为Java
一旦你这样做,你可以双击jar来执行它。
答案 1 :(得分:0)
Intellij不会为您执行JAR。记住JAR是一个容器,就像你要求执行一个ZIP文件一样。
我确定你想要的是在你的jar文件中执行一个类。哪个是具有以下内容的类:
public static void main(String[] args) { ... }
您有两种选择:
1)从命令行
执行jar2)右键点击" main"我在上面写的字,然后按RUN ..你会看到一个绿色的小箭头(播放按钮)。这是在Intellij中运行类的唯一方法。
希望有所帮助
答案 2 :(得分:0)
如果您的JAR使用jar -jar <file>
从命令行启动,那就像JAR文件一样可执行(换句话说,元数据指定主类的位置)。如果您想使用操作系统提供的工具来指定当您双击.jar文件时,它应该执行java -jar <file>
,但这超出了JAR文件的范围。例如,如果您正在运行Windows,则应该能够按照here概述的步骤实现此目的。同样,这是特定于操作系统的,甚至可能特定于您正在运行的版本,并且实际上只是围绕双击事件执行java -jar
命令的奇特包装。
答案 3 :(得分:0)
确保为jar设置了x-flag。
java -jar xyz.jar
不需要,但双击需要它:
ls -l xyz.jar
chmod 755 xyz.jar