用于Java应用程序的JRE包

时间:2016-09-20 16:50:46

标签: java maven exec-maven-plugin javapackager

我的目标是通过Maven自动将独立的JRE与我的Java应用程序打包在一起。

为了实现这一点,我使用了JDK的# -*- coding: utf-8 -*- import os import win32api from moviepy.editor import VideoFileClip def short_path(unicode_path): return win32api.GetShortPathName(unicode_path) v1 = '“ēī①”.mp4' print os.path.isfile(v1) # False v2 = u'“ēī①”.mp4' print os.path.isfile(v2) # True # clip = VideoFileClip(v1) # IOError # clip = VideoFileClip(v2) # UnicodeEncodeError clip = VideoFileClip(short_path(v2)) # OK print clip.duration exec-maven-plugin。我的POM设置如下所示:

javapackager

最后, <plugin> <groupId>org.codehaus.mojo</groupId> <artifactId>exec-maven-plugin</artifactId> <version>1.5.0</version> <executions> <execution> <id>package-jar2</id> <phase>package</phase> <goals> <goal>exec</goal> </goals> <configuration> <executable> ${env.JAVA_HOME}/bin/javapackager </executable> <arguments> <argument>-deploy</argument> <argument>-native</argument> <argument>exe</argument> <argument>-appclass</argument> <argument>${app.main.class}</argument> <argument>-srcdir</argument> <argument>${project.build.directory}</argument> <argument>-srcfiles</argument> <argument>${project.build.directory}\${artifactId}-${version}.jar</argument> <argument>-outdir</argument> <argument>${project.build.directory}</argument> <argument>-outfile</argument> <argument>${project.artifactId}-${version}</argument> <argument>-v</argument> </arguments> </configuration> </execution> </executions> </plugin> 会发出以下错误:

javapackager

[INFO] --- exec-maven-plugin:1.5.0:exec (package-jar2) @ cli-api --- Error: Unknown argument: D:\Archiv\Dokumente\Entwicklung\PEProjekt\repository\core\cli-api\target [ERROR] Command execution failed. org.apache.commons.exec.ExecuteException: Process exited with an error: -1 (Exit value: -1) 似乎是我的Unknown argument参数。

我做错了什么?我想将我的原生JRE打包到目标目录中。

1 个答案:

答案 0 :(得分:0)

如果你想将基础jre添加到你的包中,可以使用

--

<argument>-Bruntime</argument> <argument>${env.JAVA_HOME}</argument> 是所有相关文件的目录,因此我只需要1 -srcdir排除并使用-srcdir

如果您不想,请在其末尾添加path.separator