JAVA SE11环境变量配置(Windows)
发布日期:2022-03-11 15:03:42 浏览次数:5 分类:技术文章

本文共 4313 字,大约阅读时间需要 14 分钟。

 

附上:

附上:

附上:

 


 

大事件:java se 下载都要登录了,所以建议个人开发者使用OpenJDK ,如果没有好好阅读条款,商用领域使用Oracle-JDK是有收律师函的成本的。

OpenJDK官网: (注意GPL2协议)

 

参考:

 

当然还有很多公司的开源JDK,如亚马逊   ZULU:   此外还有微软、阿里等等

可替代JDK介绍: 


 

 

导航:

  

一、JAVA环境配置和测试

并运行jdk-11.0.1_windows-x64_bin.exe

 

配置环境变量示例(快捷键 WIN+Pause,笔记本可能要多按个Fn键)

JAVA_HOME     C:\Java JDK

path       %JAVA_HOME%\bin  (如果这里不生效,就改为bin目录的完整路径)

CLASSPATH    .;%JAVA_HOME%\lib;

 

其他一致CLASSPATH值.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\jre\bin
附上JDK1.8环境变量

 

类路径变量 共有两个值,其中点是为当前目录的意思

附上LINUX Debian系操作系统:dpkg -i 安装包文件名.debnano /etc/profile写在最后:

# Oracle JDK11

export JAVA_HOME="/usr/lib/jvm/jdk-11.0.2"

export CLASSPATH=${JAVA_HOME}/lib
export PATH=$PATH:${JAVA_HOME}/bin

路径间用分号隔开,$PATH必须要写,不然会破坏系统变量。等号左右不能有空格,不然报错 可以先在终端打export测试(就算打错了也只对当前终端窗口生效),确认无误就执行 之所以不加当前目录作为CLASSPATH,是因为这是linux,全局变量挺危险的。单文件运行用 java -d . 文件名 也不麻烦吧 source /etc/profile 使变量文件在当前终端窗口生效,测试java -version成功的话就可以重启电脑让它永久生效了 至于OpenJdk和OracleJdk冲突看这里:
 

 

 

命令行测试()

java -versionjavac

 

HelloWorld.java

/* *定義一個類文件,然後在螢幕上顯示 "Hello, World!"。 */public class HelloWorld {    public static void main( String[] args ) {        System.out.println( "Hello, World!" );    }}/* 這個類別文件的結束。 引用自https://zh.wikibooks.org/zh-hans/Java/HelloWorld*/

 

然后在命令行下的当前目录输入:

javac HelloWorld.java

当然有些程式码内部存在中文字串,会导致编译失败,这时候需要输入包含参数的指令:

javac -encoding utf-8 HelloWorld.java

java HelloWorld

(注意不是java HelloWorld.class,class文件是字节码文件,只是“中介”并不算可执行文件,但这个“中介”必不可少(这就是CLASSPATH里要有当前目录符号“.”的原因),)

屏幕上就会显示

Hello, World!

附上带包运行的方法

带包运行,定位到包目录所在目录  java 包名.类名如D:\test\Hello.class包名test 类名Hello那么  cd /d D:  java test.Hello
带包运行

 需要第三方依赖包的编译/运行命令,请看:

 javac的参数 -d是用来生成包结构的,可指定编译后class的生成路径:

 

javac *.java

目录下有:

a.java  a.class  b.java  b.class

 

javac -d . *.java

目录下有:

a.java  b.java  a目录\a.class  b目录\b.class

 

不明白可以看这篇:https://zhuanlan.zhihu.com/p/36529847

当然也可以暂时跳过


 


 

 

 

资料参考:

 

 

 

二、使用VSCode编译/调试JAVA

推荐参考文章:

(上面这链接有 java插件配置文件的修改方法)

如果没什么问题了,可以在VSCode上玩一下:

VSCode打开java源文件所在目录,搜索安装 Java Extension Pack,然后直接F5会生成配置文本,保存后编译java文件即可

如果提示

Warn: Classpath is incomplete. Only syntax errors will be reported. 请看,或者这里
“Classpath不完整”警告Fred Bricon编辑了这个页面 on 27 Nov 2018 · 6次修订每当打开一个java文件时,它不属于项目(我们称之为独立的Java文件),vscode-java无法计算正确的类路径。它使报告编译错误变得毫无用处,因为UI会在整个文件中填充令人分心的红色错误,例如:幸运的是,vscode-java仍然能够为基本JDK类提供有用的内容辅助,报告语法错误,计算类大纲或允许代码导航。因此,显示以下警告:如果您只是关闭消息,它将在下次打开独立的Java文件时弹出。通过单击Don’t Show Again选项可以永久丢弃该消息。如果您改变主意,可以在VS Code的用户设置中修改该选项:该java.errors.incompleteClasspath.severity密钥指定当Java文件的类路径不完整时消息的严重性。支持的值是ignore,info,warning和error。您需要打开一个包含pom.xml,build.gradle或至少是默认eclipse设置文件的文件夹,以便可以设置完整的类路径和项目层次结构。
官方说明
另外如果不需要debug功能,可以直接使用Code Runner插件。

fen ge xian

三、解决VSCode运行程序中文乱码问题(编码问题)

附上VSCode运行程序中文乱码解决方案(Java示例,C语言同理) (这里暂时以coderunner为例,实际上应该是可以在java插件里设置的)
在VSCode设置搜索code-runner.executorMap

然后从插件的默认配置复制粘贴到右边的用户配置,并进行修改

添加了以下内容到中间

"code-runner.runInTerminal": true,    // Set the executor of each language.    "code-runner.executorMap": {        "java": "cd $dir && javac -encoding UTF-8 $fileName && java $fileNameWithoutExt",        "c": "cd $dir && gcc -g -fexec-charset=GBK $fileName -o $fileNameWithoutExt -Wall -static-libgcc && $dir$fileNameWithoutExt"    }

 

 

我的用户配置是

1 { 2     "workbench.sideBar.location": "left", 3     "terminal.integrated.shell.windows": "C:\\WINDOWS\\System32\\cmd.exe", 4     "files.autoGuessEncoding": true, 5      6  7     //"terminal.integrated.shellArgs.windows": ["/K chcp 65001 >nul"], 8     //"terminal.integrated.fontFamily": "Lucida Console", 9 10 11     "code-runner.runInTerminal": true,12     // Set the executor of each language.13     "code-runner.executorMap": {14         "java": "cd $dir && javac -encoding UTF-8 $fileName && java $fileNameWithoutExt",15         "c": "cd $dir && gcc -g -fexec-charset=GBK $fileName -o $fileNameWithoutExt -Wall -static-libgcc && $dir$fileNameWithoutExt"16     }17 }
settings.json

 然后用code runner插件运行即可,调试的就没办法避免中文乱码了(只能等VSCode官方解决)。

 

 

四,解决eclipse导入javax之类的包报错(Java9开始才有的特性)

详情:

例如导入包提示错误:

The import javax.sound cannot be resolved midi.java /Test/src/com/test/demo line 2 Java Problem

这种问题并不是环境变量设置不对,而且JAVA9带来的新特性。

 

 

解决方案:只需要两步点击搞定

点击代码行号那里的×,会弹出对话框,然后点两下Add 'requires ' to module-info.java即可

 

 然后就会看一下module-info.java,会发现多了一行requires

注:javax.sound是属于java.desktop的

 

这是Java9带来的特性,至于为什么,我还在寻找答案中....

 

附上:

最后,推荐书籍(看实体书或PDF都行): 1,Head First Java(中文版) 2,Java 核心技术卷一

转载于:https://www.cnblogs.com/yucloud/p/10259681.html

转载地址:https://blog.csdn.net/weixin_30267785/article/details/99217459 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Java配置----JDK开发环境搭建及环境变量配置
下一篇:【bzoj2330】[SCOI2011]糖果 差分约束系统

发表评论

最新留言

留言是一种美德,欢迎回访!
[***.207.175.100]2024年03月16日 10时22分53秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章

vb 读取mysql所有表名_vb怎么列举出一个mdb数据库里面所有表名? 2021-06-24
mysql行级锁升级_mysql innodb 行级锁升级 2021-06-24
c 调用mysql密码为空_C语言连MySQL - osc_srnunz15的个人空间 - OSCHINA - 中文开源技术交流社区... 2021-06-24
mysql怎么分组查询所有数据库_Mysql-4 分组查询与子查询 2021-06-24
mysql 多列union_Mysql联合查询UNION和UNION ALL的使用介绍 2021-06-24
mysql导数据出指定数量_mysql导出指定数据或部份数据的方法 2021-06-24
java thread 多线程_java用Thread方式创建多线程 2021-06-24
java 注解与反射_Java注解与反射直接上手 2021-06-24
java按钮退出_java – 如何在此程序中添加退出按钮?怎么样“清楚”? 2021-06-24
python土味情话_Python 将土味情话语录设置为桌面壁纸 2021-06-24
java ip 范围内打卡_定位地理位置PHP判断员工打卡签到经纬度是否在打卡之内 2021-06-24
与java线程有关的,线程多少和什么有关?大神们表示有话要说! 2021-06-24
php正则表达式 匹配数字,正则表达式之匹配数字范围 2021-06-24
php中带?错误,参考-此错误在PHP中意味着什么? 2021-06-24
php生成链接列表,根据URL链接和抛文本生成链接<a>标签的PHP函数 2021-06-24
matlab里inline定义矩阵,Matlab中的inline函数_matlab中inline函数 2021-06-24
php html标签自定义属性,浅谈JS读取DOM对象(标签)的自定义属性 2021-06-24
如何使用matlab的siso,利用Matlab内建程式SISODesignTool完成系统分析(Matlab61)开启.PDF... 2021-06-24
php 实现 model层,Thinkhphp5控制器调用的Model层的方法总结 2021-06-24
matlab6.0序列号,MFC软件获取USB设备的制造商、产品、序列号 2021-06-24