当前位置: 首页 > 面试题库 >

使用-h选项时,javac“无源文件”

毛景曜
2023-03-14
问题内容

我正在尝试使用JNI和JDK9。我有一个NativeTest.java看起来像这样的类:

public class NativeTest {

    static {
        System.loadLibrary("hello");
    }

    private native void sayHello();

    public static void main(String[] args) {
        new NativeTest().sayHello();
    }
}

我编译该类,然后使用javah NativeTest生成头文件。

发出时javah,我得到以下警告:

Warning: The javah tool is planned to be removed in the next major
JDK release. The tool has been superseded by the '-h' option added
to javac in JDK 8. Users are recommended to migrate to using the
javac '-h' option; see the javac man page for more information.

我知道下一个主要的JDK版本还需要很长时间,但是我认为我现在将开始习惯这个新选项。

所以,在尝试javac -h NativeTest.java(以及其它类似的变化NativeTestNativeTest.class等等),我不断收到此错误:

javac: no source files

我一直无法在线找到任何帮助,可能是因为此功能是相对较新的,并且-h在手册页中找不到关于此新选项的任何信息。

还有其他人尝试吗?我想念什么?


问题答案:

我发现的解决方案是我没有指定javac应放置头文件的目录。

执行javac -h . NativeTest.java工作。



 类似资料:
  • 我已经看到了JDK发行版可以运行`javac-source1.6-target1.5`的编译选项。我理解来源和目标的单独选项。我不明白为什么源版本比目标版本高。为旧目标编译代码是有意义的。但是在这种情况下,为什么我们不使用我们希望能够运行的最古老目标的-source

  • 问题内容: 我正在尝试在中指定JDK的另一个版本maven-compiler-plugin。当-target和-source参数设置为1.5时,一切正常。但是,当我尝试使用1.6 JDK时,maven报告了一个错误。有人遇到过这个问题吗? 错误: 执行Javac失败,但无法解析错误:javac:无效标志:-s用法:javac,可能的选项包括:-g生成所有调试信息-g:none不生成调试信息 谢谢。

  • 我试图在< code > maven-compiler-plugin 中指定另一个版本的JDK。当< code>-target和< code>-source参数设置为1.5时,一切正常。但是当我尝试使用1.6版JDK时,maven报告了一个错误。有人面临过这个问题吗? 错误: 执行 javac 失败,但无法解析错误: javac: 无效标志: -s 用法: javac(如果可能)选项包括: -g

  • 问题内容: 我在当前工作目录上有文件,但是javac报告: 我正在研究ubuntu。 问题答案: 从上面的评论看来,您尝试过: 在您的Ubuntu系统上。该分离器是在UNIX系统上的Windows。 Ubuntu考虑了直到的命令,因此给出了消息。 应该编译好。

  • 我有一个单选按钮,一旦被选中,我想显示几个与之相关的选项。。选项在相关bean上。我该怎么做?

  • 我是C的新手,这是我使用visual studio的第一个项目。我有#include