Jar不是双击启动,而是从命令行开始

时间:2014-10-20 18:29:19

标签: java intellij-idea jar

我正在使用IntelliJ创建JAR文件,从命令行运行时正常执行,但双击它时没有任何反应。我从eclipse导出的JAR正常工作,因为我是初学者使用IntelliJ,我的猜测是我做错了。

我以这种方式导出JAR:

Project structure -> jar -> from modules and dependencies then use this 
    configuration to build.

4 个答案:

答案 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)从命令行

执行jar

2)右键点击" 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