Intellij IDEA: Cannot resolve symbol ‘var‘引出的问题

在File > Project Structure:
点击左侧的Project,设置Project SDKs为openjdk-17;
点击左侧的Modules,设置Module SDK为17;

这里给出下载JDK17链接
一路点击通过,傻瓜式安装。
如果你和我一样,电脑已经安装了JDK8,但又不想卸载的同时想安装JDK17。那么看我下面这中配置方式。
环境变量-->新建JAVA_HOME8、JAVA_HOME17分别指向jdk8和jdk17的安装目录,这里给出其中一个:
变量名:JAVA_HOME17 变量值:D:\Program Files\Java\jdk-17.0.1
环境变量-->如果以前配置过,就原有CLASSPATH配置不动。可以直接跳过这一步骤。但是如果没有配置的,看这里哈~
变量名:CLASSPATH 变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
环境变量-->Path新增两条变量
%JAVA_HOME%\bin %JAVA_HOME%\jre\bin
效果图

这里在啰嗦一下 java环境变量PATH和CLASSPATH区别

PATH

安装完JDK(Java Development Kit,Java开发套件)之后,可以在安装目录下找到两个子目录(bin目录和lib目录)。bin目录中包含着Java编译器等可执行文件。

如果要运行执行java命令,必须得执行java命令对应的可执行文件的路径,通常有两种方式:

  1. 在%JAVA_HOME%目录下执行。
  2. 执行命令的时候,指明路径%JAVA_HOME%/bin/java

但是,这样不是特别方便,这就是为什么配置环境变量。如果将%JAVA_HOME%/bin/,添加到环境变量PATH中。再执行java命令时(无论在哪个目录下执行),系统就会从左到右搜索(这里的顺序很重要,可以利用这个特性覆盖掉某个旧版本的jdk。)环境变量PATH中执行的目录,直到找到对应的可执行文件并执行(找到之后,后面的目录都会被忽略掉)。如果找不到,提示该命令不存在。这就是PATH环境变量的作用。

CLASSPATH

和PATH变量不同,CLASSPATH环境变量的作用是指定Java类所在的目录(或许它的意思就是PATH of Class)。
当运行java程序的时候,要指定相应的类名,比如,下面的例子中,在C:\test\目录下写一个HelloWorld,并执行:

点击查看代码
c:\test>type HelloWorld.java   #查看文本文件的内容
public class HelloWorld{
        public static void main(String[] args) {
                // TODO Auto-generated method stub
                System.out.println("Hello World!!");
        }
}
c:\test>javac HelloWorld.java   #因为配置了PATH环境变量,在任意目录下都可执行javac

c:\test>dir   #查看编译生成的class文件
22:13               HelloWorld.class
22:08               HelloWorld.java
c:\test>java HelloWorld   #运行HelloWorld(注意,不能加.class后缀)
错误: 找不到或无法加载主类 HelloWorld

此时环境中CLASSPATH环境变量的值是什么:
c:\test>echo %CLASSPATH% C:\Program Files\Java\jdk1.8.0_51\lib\tools.jar;C:\Program Files\Java\jdk1.8.0_51\lib\dt.jar c:\test>
没有HelloWorld.class所在的目录。下面我们通过手动指定CLASSPATH解决该问题:
c:\test>java -classpath . HelloWorld Hello World!! c:\test>
实际上,和PATH环境变量也是由左到右搜索的,所以,在向CLASSPATH中添加新的目录时,通常将其放在最左侧。下面的例子中,在指定-classpath选项的参数时,引用了%CLASSPATH%环境变量:
c:\test>java -classpath .;%CLASSPATH% HelloWorld 错误: 找不到或无法加载主类 Files\Java\jdk1.8.0_51\lib\tools.jar;C:\Program c:\test>java -classpath ".;%CLASSPATH%" HelloWorld Hello World!! c:\test>echo ".;%CLASSPATH%" ".;C:\Program Files\Java\jdk1.8.0_51\lib\tools.jar;C:\Program Files\Java\jdk1.8.0_51\lib\dt.jar"
如果刚装完JDK,没有配置环境变量,那么缺省的%CLASSPATH%环境变量的值是.,也就是当前目录。

Java中通常将环境变量CLASSPATH配置为.;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar。其中为何包含.,在上面的例子中已经看得很清楚了。下面的内容大概介绍了另外两个的作用:

dt.jar:运行环境类库,主要是Swing包,这一点通过用压缩软件打开dt.jar也可以看到。如果在开发时候没有用到Swing包,那么可以不用将dt.jar添加到CLASSPATH变量中。

tools.jar:工具类库,它跟我们程序中用到的基础类库没有关系。我们注意到在Path中变量值bin目录下的各个exe工具的大小都很小,一般都在27KB左右,这是因为它们实际上仅仅相当于是一层代码的包装,这些工具的实现所要用到的类库都在tools.jar中,用压缩软件打开tools.jar,你会发现有很多文件是和bin目录下的exe工具相对性的

posted @ 2023-03-17 21:23  上杉家主-上杉绘梨衣  阅读(458)  评论(0编辑  收藏  举报