当JDK已经包含用于执行代码的JRE时,为什么我必须单独下载JRE才能执行我的java代码是疑惑,这让我困扰
我正在尝试构建一个 Java 项目。这对我来说曾经是一件轻而易举的事,但自从我将工作区更改为另一个位置来存储我的新项目后,我就遇到了麻烦。我收到这两个错误。
Description Resource Path Location Type
The project cannot be built until build path errors are resolved InterviewPractice Unknown Java Problem
Unbound classpath container: 'JRE System Library [JavaSE-1.7]' in project 'InterviewPractice' InterviewPractice Build path Build Path Problem
Run Code Online (Sandbox Code Playgroud)
我在网上查找了修复方法,但似乎没有一个对我有用。
构建项目时,选择 JRE 选择。我也不确定该选择什么。我认为它已设置为默认值OSGi/minimum 1.0,但老实说我不确定它的作用。我只是想构建简单的程序来进行面试练习。所以JavaSE-1.7?
当我单击 JRE 系统库时,会弹出一个窗口,提示发生错误。有关更多详细信息,请参阅错误日志。java.lang.NullPointerException
我发现有时应用程序要求java_home指向JDK并且不能使用JRE.
为什么会这样?这是对的吗?
我已经在我的机器中安装了 JRE,并下载了 Eclipse IDE,并开始在该 IDE 上工作。
我读过一些博客,比如没有 JDK,我们无法编译 java 程序,但我可以在 eclipse IDE 中运行程序/应用程序。
然后在其他一些博客中给了我信息,例如 Eclipse 将有自己的 JDK,因此尝试在命令提示符下运行以获取了解信息。当我尝试通过命令提示符编译 bin 文件夹(C:\Program Files\Java\jre7\bin)中的程序时,它说 javac 无法识别。我认为这是因为缺少编译的类文件,因为未安装 JDK,所以我从 Eclipse IDE 复制了带有类文件的项目,并尝试运行它说无法找到或加载主类文件名.java 的程序。
即使我已将 JRE bin 路径的环境变量设置为 Java_home 。
请向我简要解释一下 JDK 和 JRE 的区别。
JDK是JRE的超集.JDK具有必要的工具,如javac java.exe调试器等+ JRE.但JRE有一个特定的JVM实现.
我的假设是java.exe或java应用程序启动器是解释器(如果我错了请纠正我).此外,JVM也进行了解释.
最后是JVM的解释器部分还是JDK工具的一部分?请解释.
我正在尝试从工作站监视VisualGC。
命令: java -version
openjdk version "1.8.0_151"
OpenJDK Runtime Environment (build 1.8.0_151-b12)
OpenJDK 64-Bit Server VM (build 25.151-b12, mixed mode)
Run Code Online (Sandbox Code Playgroud)
因此,我创建了一个策略文件,并尝试启动jstatd,如下所示。
文件名: jstatd.all.policy
grant codebase "file:${java.home}/../lib/tools.jar" {
permission java.security.AllPermission;
};
Run Code Online (Sandbox Code Playgroud)
尝试执行的命令: jstatd -J-Djava.security.policy = jstatd.all.policy
错误: -bash:jstatd:找不到命令
命令: rpm -qa | grep java
输出:
tzdata-java-2017c-1.el7.noarch
javapackages-tools-3.4.1-11.el7.noarch
java-1.8.0-openjdk-headless-1.8.0.151-5.b12.el7_4.x86_64
java-1.8.0-openjdk-1.8.0.151-5.b12.el7_4.x86_64
python-javapackages-3.4.1-11.el7.noarch
Run Code Online (Sandbox Code Playgroud)
另外,在visualvm的“选项卡:Visual GC”上,我看到“此JVM不支持”
可能重复:
JDK和JRE有什么区别?
你用一个对抗另一个的主要原因是什么?什么时候应该使用JRE以及何时使用JDK?考虑做出决定的因素有哪些?
对不起,如果这些是非常愚蠢的问题bcz我是java新手.JDK内部包含JRE,如果它是一个独立的应用程序,那么JRE的需求是什么.
我想知道官方Java核心API是JDK还是JRE的一部分。
根据对Java的理解,我认为核心API应该是JRE的一部分,因为该应用程序应该可以在没有JDK提供的附加功能的情况下运行。
我还在网上找到了一些信息,说JDK的3个基本组件是:
(由于JRE是JVM的实现,因此Java API属于JRE还是JDK?)
编辑:实际问题:Java API是否包含在JRE中?