如何解决;在classpath或bootclasspath中找不到包java.lang;Java博士?

如何解决;在classpath或bootclasspath中找不到包java.lang;Java博士?,java,drjava,Java,Drjava,我是Java新手。我正在上大学的Java初学者课程。我正在运行我的第一个hello world代码,并收到一条错误消息。我已经安装了最新的Dr.Java稳定版本,并安装了JavaSE12JDK 我已经多次卸载并重新安装了Dr.Java,但仍然收到错误消息。我还将其重新编译到,但仍然存在错误消息 public class HelloWorld { public static void main(String[] args) { System.out.println("He

我是Java新手。我正在上大学的Java初学者课程。我正在运行我的第一个hello world代码,并收到一条错误消息。我已经安装了最新的Dr.Java稳定版本,并安装了JavaSE12JDK

我已经多次卸载并重新安装了Dr.Java,但仍然收到错误消息。我还将其重新编译到,但仍然存在错误消息

public class HelloWorld {
    public static void main(String[] args) { 
        System.out.println("Hello, World");
    }
}
我希望代码输出在交互窗格下显示“Hello World”,但事实并非如此,而是显示了一条错误消息:“当前文档与交互窗格不同步,应该重新编译!”

此外,在控制台窗格下,我收到以下消息:

编译器正在使用classPath='[C:\Users\Admin, C:\Users\Admin\Downloads\drjava-beta-20190813-220051.jar]; bootClassPath='null'致命错误:找不到包java.lang 在类路径或引导类路径中


意识到OP通过JDK版本解决了他的问题,我在经历了他描述的相同症状后遇到了这个问题。因此,尽管问题最终与OP的情况并不完全“相同”,但发布症状解决方案似乎是合适的:

我也有同样的问题,编译不起作用。在我的例子中,我使用的Linux系统既有OpenJDK,也有手动安装的OracleJDK(从java.com获得的tarball中提取),还有其他一些地方的JRE环境。我“安装”了
DrJava版本:DrJava-20190813-220051
jar文件,并从命令行运行它。当它询问安装更新时,我点击了
[手动下载]
drjava-beta-2019-220051

DrJava报告说我的编译器是
JDK8.0\u222
。注意,我不知道编译器是从哪里来的。据我所知,我没有安装那个版本。我的OpenJDK是:

$ /bin/java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
我输入了一个简单的“Hello World”程序,每次尝试编译都会产生:

Compiler Output:
  "Compilation completed."
Interactions
  Welcome to DrJava.  Working directory is /home/krb/Projects/Software/java
  Current document is out of sync with the Interactions Pane and should be recompiled!
  > 
这是一个bug,因为实际上编译显然没有完成

单击
Run
生成:

Compiler Output:
  "Compilation completed."
Interactions
  Welcome to DrJava.  Working directory is /home/krb/Projects/Software/java
  Current document is out of sync with the Interactions Pane and should be recompiled!
  > 
重新启动DrJava、保存、单击重置等不会清除问题

无论如何,在某个时刻,我注意到Console选项卡上充满了如下消息:

Console
  Compiler is using classPath = '[/home/krb/Projects/Software/java, /home/apps/drjava/drjava-beta-20190813-220051.jar]';  bootClassPath = 'null'
  Fatal Error: Unable to find package java.lang in classpath or bootclasspath
在这一点上,我尝试了各种方法,但我的重点是将DrJava指向几天前安装的Oracle Java JDK。我所做的一切都是在
Edit | Preferences…|资源位置
,不过我在那里转了一会儿。在我开始之前,所有的设置都是“空白”的。不管怎么说,我最终还是取得了一些成功:

Web Browser
 /usr/lib64/firefox/firefox
Web Browser Command

Tools.jar Location
  /home/raid/apps/oracle/jdk-1.8.0_251/jre/lib/tools.jar
Display All Compiler Version [ ]
Extra Classpath
  /home/raid/apps/oracle/jdk1.8.0_251/jre/lib
  /home/raid/apps/oracle/jdk1.8.0_251/lib
注意:您的路径将与我的路径不同!你需要使用 系统上的实际路径。在我的例子中,我搜索了“rt.jar”并 “tools.jar”显然位于与已安装的 JDK

在这一点上,我决定设法找出使它工作所需的最低限度。在做了大量的修改之后,我发现只要设置
首选项|资源位置| Tools.jar位置
,就足够了,但是有一个主要的警告。您必须使用该对话框浏览到该文件。您不能只是粘贴在路径中如果只是粘贴到路径中,看起来它设置正确,但编译器将继续无法工作。这就是我让OracleJDK编译器工作的方式

接下来,我开始考虑是否可以让OpenJDK工作。我在整个系统中搜索了另一个属于OpenJDK的
tools.jar
,但没有找到。然后我意识到我没有安装developenjdk包(在mageialinux7上)

我安装了:

java-1.8.0-openjdk-devel-1.8.0.252-1.b09.1.mga7
现在,即使在重置了默认值之后,DrJava也不再说它正在使用
JDK 8.0\u 222
,而是
JDK 8.0-openjdk-1.8.0.252-1.b09.1.mga7.x86\u 64-openjdk
,而且一切都可以正常工作,无需定制首选项

我不知道这个该死的jdk8.0\u222来自哪里。我的系统上没有这个版本。我认为这是DrJava中的一些内部内容。我认为外卖是:

  • 如果DrJava说它使用的是
    JDK8.0\u222
    ,那么它可能就行不通了
  • 如果您的系统可能会拆分OpenJDK安装,请确保实际安装了
    tools.jar
  • Tools.jar位置
    指向安装您正在使用的JDK的现有
    Tools.jar
    文件,并确保浏览到该文件(而不仅仅是粘贴到路径中)

我知道我看到的是Linux和一个.jar安装的DrJava,这可能不是您所拥有的,但这些信息可能会有助于您查看和尝试。

意识到OP通过JDK版本解决了他的问题,我在经历了他描述的相同症状后遇到了这个问题。因此,尽管问题最终与OP的情况并不完全“相同”,但发布症状解决方案似乎是合适的:

我也有同样的问题,编译不起作用。在我的例子中,我使用的Linux系统既有OpenJDK,也有手动安装的OracleJDK(从java.com获得的tarball中提取),还有其他一些地方的JRE环境。我“安装”了
DrJava版本:DrJava-20190813-220051
jar文件,并从命令行运行它。当它询问安装更新时,我点击了
[手动下载]
drjava-beta-2019-220051

DrJava报告说我的编译器是
JDK8.0\u222
。注意,我不知道编译器是从哪里来的。据我所知,我没有安装那个版本。我的OpenJDK是:

$ /bin/java -version
openjdk version "1.8.0_252"
OpenJDK Runtime Environment (build 1.8.0_252-b09)
OpenJDK 64-Bit Server VM (build 25.252-b09, mixed mode)
我输入了一个简单的“Hello World”程序,每次尝试编译都会产生:

Compiler Output:
  "Compilation completed."
Interactions
  Welcome to DrJava.  Working directory is /home/krb/Projects/Software/java
  Current document is out of sync with the Interactions Pane and should be recompiled!
  > 
<