我无法从简单的Java程序制作可执行jar。使用Maven Shade插件创建可执行JAR
我跟着these Maven instructions和修改我的pom.xml
:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.7</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation=
"org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>package.MyClass</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
当执行install
目标,我可以读行:
[INFO] Replacing /home/project-1.0.0.jar with /home/project-1.0.0-shaded.jar
但所有我能找到在那个位置是project-1.0.0.jar
,实际上包含依赖关系 - 并且具有合适的大小 - 但是当试图用我的jre执行它时,它会说:
The file '/home/project-1.0.0.jar' is not marked as executable.
因此什么都得不到执行!
如何让我的jar正确执行?
感谢您的帮助!
你是如何尝试执行呢?它不像我说的那样,“java -jar MYJARFILE” – bmargulies
实际上,我必须首先在我的Ubuntu上使其可执行...... –
@Vakimshaar Ubuntu上的可执行标志不是必需的,因为它将被执行由JVM ......而不是由操作系统本身。 – khmarbaise