【发布时间】:2012-06-13 10:43:45
【问题描述】:
我无法从一个简单的 Java 程序制作可执行的 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”
-
其实我必须先让它在我的 Ubuntu 上可执行...
-
@Vakimshaar Ubuntu 上的可执行标志不是必需的,因为它将由 JVM 执行......而不是由操作系统本身执行。
-
那么在生成JAR的时候如何设置呢?
-
您是否像已经提到的 bmargulies 那样通过“java -jar MYJARFILE”调用?
标签: maven maven-3 maven-assembly-plugin maven-shade-plugin