当前位置: 首页 > 知识库问答 >
问题:

javah通过Maven exec插件执行时失败

贡俊
2023-03-14

我有一个问题使用Maven exec插件执行Java工具javah。我试图将输出目录指定为javah,其中头文件要放置,但我得到了错误:

[信息]---exec maven插件:1.5.0:exec(创建jni头)@jni测试osgi---错误:未知选项:-d/home/kerry[Error]命令执行失败。

这是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。爪哇技术。jni。测验奥斯基。HelloWorld从命令行执行,则没有问题。

我是做错了什么,还是Maven exec插件有问题?

共有1个答案

薛经艺
2023-03-14

每个“论点”必须有自己的一行:

<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命令未知的单个参数。因此出现了错误。

 类似资料:
  • 在示例空手道测试项目中,我们有一个功能文件和一个runner类。 尝试使用下面的命令通过命令行执行测试 抛出以下错误... [信息]-------------------------------------------------------------[信息]生成失败[信息]-------------------------------------------------------------

  • 问题内容: 作为构建过程的一部分,我编写了一个EXE,它将数据库更改推送到登台DB。 这个过程有时会遇到错误,如果是这样,我希望构建失败。如何添加EXE作为构建步骤,以便在失败(我可能会捕获到异常)时使构建失败并记录一些详细信息(类似于NUNit显示失败的方式)? 我还希望该exe记录其他一些详细信息(例如更改内容-构建通过还是失败)。是否有任何有关如何执行此操作的文档? 我正在使用MSBuild

  • 问题内容: 我有一个sql脚本文件,我需要通过java执行其中的命令。我在互联网上搜索了相同的内容,得到了一些定义解析器的代码以拆分SQL语句并执行该代码。但是它们都不适合我的sql脚本文件。因为我的脚本文件同时包含create语句和alter语句,但不带分号[相反,它具有GO]有人可以建议一种执行脚本文件的解决方案吗?谢谢,Mahesh 问题答案: 对于简单的脚本,我通常使用ibatis- Sc

  • 有问题的错误消息是 从文件夹中的工作正常。我的项目结构是 还有由定义 由下式定义 这是一个比这个问题中的版本修复升级晚得多的版本 插件在子模块pom而不是父pom中,因为这里的错误 我尝试删除

  • 已安装Java版本8更新271。 从这个链接下载了swagger-codemen-cli版本2.4.17 当我运行命令生成时,我得到以下问题 我必须使用这个JSON,但我也测试了这个样本JSON 对于2.4.7 rc1,我得到以下错误: 试着一步一步地找到答案。没找到。 任何指针都是有用的 尚卡尔

  • 根据Executors中有关newFixedThreadPool的文档,我发现 如果任何线程在关闭之前的执行过程中由于失败而终止,如果需要执行后续任务,则将有一个新的线程代替它。 当我运行代码时,我检测到容量为5的固定大小的线程池随着时间的推移继续生成线程,比如,假设为 所以我想知道ExecutorService什么时候决定它的一个线程失败并启动新的线程。 有人能告诉我为什么会这样吗?