符号表示什么以及(本地方法)对java.io.FileStream.open
方法的说法是什么?
Exception in thread "main" java.io.FileNotFoundException: line23 (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:135)
at java.io.FileInputStream.<init>(FileInputStream.java:95)
at java.io.FileReader.<init>(FileReader.java:64) at Helper.readFile(Foo5.java:74)
at Bar2.main(Bar2.java:32)
答案 0 :(得分:9)
当你看到&lt; init&gt;在stacktrace中,它引用类的构造函数。
本机方法表示该方法不是用Java实现的,而是用C或C ++等其他低级语言实现的。在这种情况下,open()
是一种需要低级功能的方法,这些功能与操作系统不同。
答案 1 :(得分:1)
本机方法在JVM
(Java虚拟机)中实现。 Java开发人员不应该担心它们的实现,因为它们与虚拟机的内部工作有关。
在这里java.io.FileStream.open()
这是一项行动。
答案 2 :(得分:0)
如果您打开课程的来源
java.io.FileStream
你可以看到这个方法
private native void open(String name)抛出FileNotFoundException;
没有任何身体。
该方法在&#34; native&#34;中实现。码。也就是说,代码不能在JVM中运行。它通常用C或C ++编写。
本机方法通常用于与系统调用或用其他编程语言编写的库进行交互。
要获取本机方法的源代码,您可能必须使用一些开源JDk,如OpenJDK