【问题标题】:"Can't load javah" error in EclipseEclipse 中的“无法加载 javah”错误
【发布时间】:2013-02-22 19:56:01
【问题描述】:

我正在尝试在 Eclipse 的 ant 构建文件中使用 javah 任务,但我不断收到以下错误:

构建失败

C:\sandbox\build-jni.xml:7: 无法加载 javah

这是我的 build-jni.xml 文件:

<project>
<property name="bin" location="bin" />


<target name="generate-jni">
    <javah destdir="${bin}" classpath="${bin}">

        <class name="org.example.ExecJNI" />
    </javah>
</target>

关于我为什么会收到该错误的任何想法?我的项目指向 JDK 而不是 JRE

【问题讨论】:

  • 我在 Indigo Service Release 1 Build id: 20110916-0149 和 java 版本“1.7.0_15”上对此进行了测试,它工作正常。
  • 谢谢,@ChuckFricano!似乎我越过了 BUILD FAILED 错误,但现在我得到以下信息:generate-jni: [javah] Exception in thread "main" java.lang.NullPointerException [javah] at com.sun.tools.javah.JavahTask.run(JavahTask.java:509) [javah] at com.sun.tools.javah.JavahTask.run(JavahTask.java:335) [javah] at com.sun.tools.javah.Main.main(Main.java:46)
  • 此外,我的 Ant Home Entries in Window --> Preferences 中确实有 C:\Program Files\Java\jdk1.7.0_15\tools.jar。另外,我使用的是 Eclipse 版本:Indigo Service Release 2 Build id:20120216-1857
  • 用您发现的问题/解决方案在“您的答案”区域中自己回答原始问题,并针对新症状打开一个新问题。
  • 我对这个问题投了赞成票,因为我在另一个应用程序中遇到了“无法加载 javah”错误,但您的问题帮助我弄清楚了如何解决无法加载 javah 问题 - 这是一个openjdk-6-jdk ANT 1.8.3 依赖

标签: eclipse ant javah


【解决方案1】:

原来我的 Ant Home Entries in Window --> Preferences 中没有 C:\Program Files\Java\jdk1.7.0_15\tools.jar。这似乎解决了问题。

【讨论】:

  • 在ant runtime classpath中加入tools.jar后,我也遇到了(Eclipse Kepler for Windows 7 64-bit)上面提到的javah空指针异常。此后续问题的正确解决方法是在 Run -> External Tools -> External Tools Configurations 对话框中的每个 ant 构建文件的 JRE 选项卡上指定“在与工作区相同的 JRE 中运行”。如果您安装了多个 JRE,您可能必须从已安装的 JRE 列表中指定一个特定的(即单独的)JRE。
  • 或者,您可以通过右键单击构建文件(在项目资源管理器中)-> 属性 -> 运行/调试设置来访问“编辑配置对话框”中的 JRE 选项卡;单击构建文件,然后按编辑按钮。
  • 如果您安装了多个 JRE,如果您还在 eclipse.ini 文件中使用 -vm 提供了特定的 JVM,您仍然可以使用“在与工作区相同的 JRE 中运行”(参见上面的第一条评论)选项。这可能是最好的解决方案,因为它保证了 Eclipse 将在哪个 JVM 下运行。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-29
  • 2014-06-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多