以Ubuntu20.04为例,除了安装JDK外,本文其余部分同样适用于Windows
检查系统是否安装过JDK
在终端输入java -version,如果有信息输出,则进行以下步骤:
rpm -qa | grep java查看已安装的java软件包,然后使用rpm -e --nodeps 软件包名卸载。如果是tar.gz包则使用rm -rf 包名删除即可。
下载并解压
从https://www.oracle.com/java/technologies/javase-downloads.html下载JDK,然后解压后使用mv命令将文件夹移到安装路径下,这里选择/opt/为安装路径
配置环境变量
sudo vim /etc/profile编辑profile文件。在文件末尾添加下面内容
export JAVA_HOME=/opt/jdk-15.0.1
export CLASSPATH=.:${JAVA_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
如果是JDK8则输入
export JAVA_HOME=/opt/jdk1.8.0_171
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
保存并使用source /etc/profile使环境变量立即生效
测试
使用java -version和javac命令测试
多版本JDK切换
(1) 同时使用多个版本时安装jenv可无需配置jdk的环境变量。
下载:终端输入
git clone https://github.com/gcuisinier/jenv.git ~/.jenv
配置:~/.bash_profile为环境变量文件,根据实际修改
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
echo 'eval "$(jenv init -)"' >> ~/.bash_profile
source ~/.bash_profile
添加JDK
jenv add /opt/jdk1.8
jenv add /opt/jdk14
查看已添加的JDK的link
jenv versions
#删除多余link
jenv remove 版本号
设定全局java版本:每次更换完记得使用source刷新环境变量,如source /etc/profile,这条命令通常可以解决jenv: no such command `enable-plugin’这种错误
#设置全局java版本
jenv global 1.8
通过java -version查看
#设置本地文件夹java版本
jenv local 1.8
开启插件
开启对JAVA_HOME的控制
jenv enable-plugin export
如果使用的是maven,请运行以下命令:
jenv enable-plugin maven
支持的插件:
$ jenv plugins
ant
export
golo
gradle
grails
groovy
lein
maven
sbt
scala
springboot
vlt
参考链接:http://www.victorchu.info/posts/3be2fbfe.html
上图的Extension Pack包括下图的插件
推荐安装
(1)查看字节码文件
(2)xml文件(后面创建maven工程可以格式化xml文件)
(3)用于创建maven工程时用于依赖分析
还有vscode一些很好用的插件请查看我的另一篇博客
常用插件
注意:下次打开文件夹时依然需要是上图这样的目录结构。否则一次打开多个project,当源码中有中文时,使用coderunner会出现无法运行或乱码的情况(即使设置了coderunner在终端运行也没用)
调试运行
settings.json文件内容
{
"files.autoSave": "onFocusChange", //自动保存
"java.dependency.packagePresentation": "hierarchical",
"java.dependency.syncWithFolderExplorer": false,
"editor.lineHeight": 26,
"editor.fontSize": 14,
"files.exclude": {
"**/.classpath": true,
"**/.project": true,
"**/.settings": true,
"**/.factorypath": true
},
"code-runner.runInTerminal": true,
"code-runner.executorMap": {
//如果有包名,则需将下面的java $fileNameWithoutExt修改为java 包名.$fileNameWithoutExt
//如java com.example.$fileNameWithoutExt
"java": "cd $dir && javac $fileName -encoding utf8 -d ${dir}\\..\\..\\build && cd ${dir}\\..\\..\\build &&java $fileNameWithoutExt"
},
"java.project.sourcePaths": [//src为工程的源码相对路径
"src"
],
}
"code-runner.executorMap"中配置看不懂的看附录
从https://github.com/junit-team/junit4/wiki/Download-and-Install下载两个jar包
假设已经安装了maven
这里以创建普通maven工程为例。webapp类似
创建完如下图所示
调试运行和单元测试与上面一样.不同点在于以下两点
<dependency>
<groupId>junitgroupId>
<artifactId>junitartifactId>
<version>4.11version>
<scope>testscope>
dependency>
不过一般创建好maven项目,其自动添加了Junit依赖.
如果有编译问题,先按F1输入clean Java Language Server Workspace,清理工作空间
在launch.json中根据main函数所在的类,添加类似如下代码
{
"type": "java",
"name": "Launch MainTest",
"request": "launch",
"mainClass": "MainTest",//类名
"projectName": "JavaSE",//工程名
"args": ["1","2","3"], //给main函数传参
}
下面参数中,加{}表示没有双引号,如VScode_source\java_source\MavenProject
没加则有引号,如"VScode_source\java_source\MavenProject"
可以自行根据实际情况加或不加
$workspaceRoot :VSCode中打开的文件夹的路径
$dir :正在运行的代码文件的目录
$dirWithoutTrailingSlash :正在运行的代码文件的目录,没有尾部斜杠
$fullFileName :正在运行的代码文件全称,即文件路径+文件名+类型后缀
$fileName :正在运行的代码文件名称,即文件名+类型后缀
$fileNameWithoutExt :没有扩展名的情况下运行的代码文件的基本名称
${workspaceFolder} :表示当前workspace文件夹路径,也即C:\Users\admin\Desktop\test
${workspaceRootFolderName}:表示workspace的文件夹名,也即test
${file}:文件自身的绝对路径,
${relativeFile}:文件在workspace中的路径
${fileBasenameNoExtension}:当前文件的文件名,不带后缀,
${fileBasename}:当前文件的文件名
${fileDirname}:文件所在的文件夹路径
${fileExtname}:当前文件的后缀,
${lineNumber}:当前文件光标所在的行号
${env:PATH}:系统中的环境变量
"code-runner.runInTerminal": true,
"code-runner.executorMap": {
"java":"cd $dir && javac $fileName -d $workspaceRoot/class/ && cd $workspaceRoot/class/ &&java $fileNameWithoutExt"
},
这里可以认为是四条命令的组合:
-d $workspaceRoot/class/指定了编译的class文件的存储位置。
java $fileNameWithoutExt当有包名时需要加上,如java.com.yi.$fileNameWithoutExt。
使用语法:
update-alternatives --install link name path priority [–slave link name path]…
其中link为系统中功能相同软件的 公共链接目录,比如/usr/bin/java(需绝对目录);
name为命令链接符名称,如java;
path为你所要使用新命令、新软件的所在目录;
priority为优先级, 当命令链接已存在时,需高于当前值,因为当alternative为自动模式时,系统默认启用priority高的链接;
详细见:https://blog.csdn.net/duan9015/article/details/102531839
(2) 使用以下命令选择JDK版本
update-alternatives --config java
(3) 如果第一步有路径错误使用类似如下命令删除
sudo update-alternatives --remove java /opt/jdk1.8.0_171/bin
导入Jar包快捷键:Alt+shift+o
涉及到tomcat环境变量注意问题,见:https://blog.csdn.net/jxpxlinkui/article/details/79649204