通过 Maven exec 插件执行时 javah 失败
javah fails when executed via Maven exec plugin
我在使用 Maven exec 插件执行 Java 工具 javah
时遇到问题。我正在尝试将输出目录指定为 javah
放置头文件的位置,但出现错误:
[INFO] --- exec-maven-plugin:1.5.0:exec (create-jni-headers) @ jni-test-osgi ---
Error: unknown option: -d /home/kerry
[ERROR] Command execution failed.
这是 POM 的相关部分:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<id>create-jni-headers</id>
<goals>
<goal>exec</goal>
</goals>
<phase>compile</phase>
<configuration>
<executable>javah</executable>
<workingDirectory>${project.build.outputDirectory}</workingDirectory>
<arguments>
<argument>-d /home/kerry</argument>
<argument>com.javatechnics.jni.test.osgi.HelloWorld</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
如果我从命令行执行 javah -d /home/kerry com.javatechnics.jni.test.osgi.HelloWorld
就没有问题。
是我做错了什么还是 Maven exec 插件有问题?
每个 "argument" 必须有自己的行:
<argument>-d</argument>
<argument>/home/kerry</argument>
<argument>com.javatechnics.jni.test.osgi.HelloWorld</argument>
否则它会通过
javah "-d /home/kerry" com.javatechnics.jni.test.osgi.HelloWorld
其中“-d /home/kerry”是 javah
命令未知的单个参数。因此错误。
我在使用 Maven exec 插件执行 Java 工具 javah
时遇到问题。我正在尝试将输出目录指定为 javah
放置头文件的位置,但出现错误:
[INFO] --- exec-maven-plugin:1.5.0:exec (create-jni-headers) @ jni-test-osgi --- Error: unknown option: -d /home/kerry [ERROR] Command execution failed.
这是 POM 的相关部分:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<id>create-jni-headers</id>
<goals>
<goal>exec</goal>
</goals>
<phase>compile</phase>
<configuration>
<executable>javah</executable>
<workingDirectory>${project.build.outputDirectory}</workingDirectory>
<arguments>
<argument>-d /home/kerry</argument>
<argument>com.javatechnics.jni.test.osgi.HelloWorld</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
如果我从命令行执行 javah -d /home/kerry com.javatechnics.jni.test.osgi.HelloWorld
就没有问题。
是我做错了什么还是 Maven exec 插件有问题?
每个 "argument" 必须有自己的行:
<argument>-d</argument>
<argument>/home/kerry</argument>
<argument>com.javatechnics.jni.test.osgi.HelloWorld</argument>
否则它会通过
javah "-d /home/kerry" com.javatechnics.jni.test.osgi.HelloWorld
其中“-d /home/kerry”是 javah
命令未知的单个参数。因此错误。