Java 字节码类文件是否包含JRElibrary函数?
假设有一个简单的java程序:Java 字节码类文件是否包含JRElibrary函数?,java,static-libraries,bytecode,Java,Static Libraries,Bytecode,假设有一个简单的java程序: package pkg; import java.lang.System; public class A { public static void main(String[] args){ System.out.println("\nhello, world\n good"); System.out.println(args.length); } } 编译之后,我得到一个.class,字节码文件。我想知道A.cla
package pkg;
import java.lang.System;
public class A {
public static void main(String[] args){
System.out.println("\nhello, world\n good");
System.out.println(args.length);
}
}
编译之后,我得到一个.class,字节码文件。我想知道A.class是否包含库函数println?我确信在C++/C中,EXE将包含库函数(而不是DLL版本)
一个衍生问题是JVM如何获取函数println?当JVM从指定的JRE例程解释相应的语句“System.out.println(…)”时,这是一个动态加载。还是只执行.class文件中包含的println
编辑:我可以说JAVA正在动态链接标准库吗 我想知道A.class是否包含库函数println 不,没有。如果您感兴趣,可以使用
javap
命令(或反编译器)查看类文件中的内容
一个衍生问题是JVM如何获取函数println
它是从“rt.jar”文件加载的,该文件是运行程序所使用的JRE/JDK的一部分
这就是为什么需要安装JRE/JDK来运行Java代码的原因之一
我想知道A.class是否包含库函数println
不,没有。如果您感兴趣,可以使用javap
命令(或反编译器)查看类文件中的内容
一个衍生问题是JVM如何获取函数println
它是从“rt.jar”文件加载的,该文件是运行程序所使用的JRE/JDK的一部分
这就是为什么需要安装JRE/JDK来运行Java代码的一个原因…否,JVM或JRE将具有包含库函数的相关类文件否,JVM或JRE将具有包含库函数的相关类文件“这就是为什么需要安装JRE/JDK来运行Java代码”。这当然是一个原因。这不是唯一的原因,我很好奇为什么JRE中包含javaapi。现在我得到了答案。JVM,JIT,也需要库类字节码来解释函数调用。从技术上讲,
rt.jar
在Mac上的命名不同。我可以说JAVA是动态链接标准库的吗?这完全取决于动态链接的含义。但这并不是对正在发生的事情的不合理描述,“这就是为什么需要安装JRE/JDK来运行Java代码”。这当然是一个原因。这不是唯一的原因,我很好奇为什么JRE中包含javaapi。现在我得到了答案。JVM,JIT,也需要库类字节码来解释函数调用。从技术上讲,rt.jar
在Mac上的命名不同。我可以说JAVA是动态链接标准库的吗?这完全取决于动态链接的含义。但这并不是对正在发生的事情的不合理描述。