我有一个疑问。我的理解是jdk有[ jre+开发工具(Java、javac、调试器等)+源代码(src.zip)]。现在java编译器的工作与类文件的运行无关。如果我正在编译一个.java文件,那么 java 编译器从哪里导入包?我可以在jre.如果我在安装时不选择jre安装jdk,这是否意味着我将无法编译具有 import 语句的 java 文件?请帮忙。
2 回答
炎炎设计
TA贡献1808条经验 获得超4个赞
首先,作为一个小评论,像这样的声明
import java.util.List;
只是引入了一个缩写,允许您List
稍后在代码中使用简单的单词而不是完整的类名java.util.List
。所以与其说是 import 语句本身,不如说是这样的类的用法java.util.List
需要一些解释。
您正确理解,要编译您的 java 文件,编译器需要有关您使用的每个类的一些信息,并且它通常会在包含该类的某个 jar 文件中找到这些信息。
现在,这个包含java.util.List
编译器读取的类的 jar 文件在哪里?你是对的,它来自 JRE,来自rt.jar
系统类路径的一部分(Java 编译器本身是一个需要基本类本身的 java 程序,所以无论你成功运行javac
,你总是有一个rt.jar
可用的)。
如果您的源代码使用了来自其他库的类,则必须在javac
命令行上指定该库,使用类似-cp
.
守着星空守着你
TA贡献1799条经验 获得超8个赞
Jdk = JRE + other tools like you mentioned.
当您编译您的 java 文件并且您使用 java inbuild 库时,它用于rt.jar
解决依赖关系,即导入语句。您可以参考下面的链接了解 JVM、JDK、JRE 和 OpenJDK 之间的区别是什么?
添加回答
举报
0/150
提交
取消