VSCode搭建Java開發運行環境

用了一段時間VSCode,以爲還能夠,想用VSCode整合不一樣的開發語言,因而研究了一下利用VSCode搭建Java環境、開發Java程序。網上這方面的帖子有很多,但每人的經歷不一樣,把本身的經歷記下來吧。php

先附上官網連接,官網上也對在VSCode中如何使用開發Java程序進行了說明html

https://code.visualstudio.com/docs/languages/javajava

VSCode能開發不一樣的語言靠的就是衆多插件了,先下載開發Java程序用的插件,官網上推薦的插件有四個:git

1. Language Support for Java(TM) by Red Hatgithub

2. Debugger for Javaexpress

3. Java Test Runnerjson

4. Maven for Java小程序

對於開發簡單的Java程序,只須要前兩個就能夠了,但須要本身再手動構建幾個配置文件(.classpath .project等),不然一些像導入、自動補全等有用的功能不能使用,只能檢查語法錯誤。第三個用於支持JUnit單元測試,第四個用於支持Maven建立Java的項目。框架

安裝完插件以後,打開「文件」-「首選項」-「設置」,進行參數設置,配置java和maven的路徑,以下所示,配置完成就能夠進行Java開發了。eclipse

    "java.home": "C:\\Program Files\\Java\\jdk1.8.0_172",          //配置該項就能夠進行java開發了,下面的配置都是支持maven使用的
    "maven.executable.path": "C:\\Program Files\\maven-3.5.4\\bin\\mvn",
    "java.configuration.maven.userSettings": "C:\\Program Files\\maven-3.5.4\\conf\\settings.xml",
    "maven.terminal.customEnv": [
        {
            "environmentVariable": "JAVA_HOME",      
            "value": "C:\\Program Files\\Java\\jdk1.8.0_172"
        }
    ]

 

先介紹一下VSCode搭建基礎的Java運行環境,不使用Maven,再介紹用Maven建立Java項目,並在VSCode中開發。

1、VSCode進行基礎的Java程序開發,不使用Maven

若開發的Java程序簡單,能夠不建立項目,只單獨開發幾個Java程序;也能夠手動建立幾個配置文件,構造一個項目

1. 不建立項目,只開發幾個Java小程序

  (1)先建立個文件夾作工做區

 

  (2)用VSCode打開文件夾,編輯Java代碼:JavaTest.java和Peaple.java。

  

   (3)編譯完成後,按下F5準備調試,這時在文件夾內會生成.vscode文件夾,裏面生成launch.json文件,並自動打開。在launch.json文件中修改配置項mainClass,以下圖所示。若是調試不一樣的程序,mainClass每次都要修改,有點繁瑣。

  (4)修改完成後,再按下F5進行調試,運行成功。

 

  (5)上面代碼是測試時,發現過個問題,好比剛剛的打開VSCode後,立刻按F5調試JavaTest.java程序,這是VSCode會報Build failed, do you want to continue?,選擇Proceed以後,還會報找不到Peaple類。

可是若是在運行JavaTest.java以前,先點開Peaple.java類,讓VSCode有這麼一個類,再運行JavaTest.java時,就不會報上述兩個問題。

Build failed, do you want to continue?問題有時會常常出現,看歪果仁也遇到相似問題,不知是否是bug。

Building Java project shows error: "Build failed, do you want to continue?":https://github.com/redhat-developer/vscode-java/issues/495

 

  (6)因爲上面代碼只是單獨兩個文件,VSCode會在右下角進行以下提示: Classpath is incomplete. Only syntax errors will be reported

咱們點開「More Information」看一下,官方給咱們的解釋是,因爲這些文件不屬於任何一個項目,VSCode-java沒法得到classpath,因而沒法報告編譯錯誤,可是仍是能夠報告語法錯誤、代碼導航等。這個提示每次都會提示,不但願提示的話能夠選「Don't Show Again」。若是想避免這個問題,代碼的文件夾裏要包含pom.xml(maven配置文件)或build.gradle(gradle配置文件)或eclipse的默認設置。

 

2. 手動建立Java項目

  (1) 建立一個空文件夾做工做區,在工做區裏再建立src和target文件,做爲源和目的的文件夾

  (2)官方提供的Language support for java是經過Eclipse ™ JDT Language Server,Buildship來啓動一個服務監聽並編譯源代碼,這裏咱們須要手動建立兩個文件來配置該編譯服務的相關項:.project和.classpath文件

  .procject文件內容:

<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
    <name>JavaTest2</name>
    <comment>Project testjava created by Buildship.</comment>
    <projects>
    </projects>
    <buildSpec>
        <buildCommand>
            <name>org.eclipse.jdt.core.javabuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
        <buildCommand>
            <name>org.eclipse.buildship.core.gradleprojectbuilder</name>
            <arguments>
            </arguments>
        </buildCommand>
    </buildSpec>
    <natures>
        <nature>org.eclipse.jdt.core.javanature</nature>
        <nature>org.eclipse.buildship.core.gradleprojectnature</nature>
    </natures>
</projectDescription>

  .classpath文件內容

<?xml version="1.0" encoding="UTF-8"?>
<classpath>
    <classpathentry kind="src" path="src"/>
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8/"/>
    <classpathentry kind="con" path="org.eclipse.buildship.core.gradleclasspathcontainer"/>
    <classpathentry kind="output" path="target"/>
</classpath>

  第一個.project文件,vscode會識別該項目爲eclipse項目,第二個文件.classpath配置了源碼目錄以及編譯輸出目錄等,對於外部導入的包,也是配置在.classpath文件中的,只要添加一行(或多行)配置:

<classpathentry kind="lib" path="lib的地址"/>

  (3)若是工做區裏沒有.vscode文件夾和launch.json能夠手動建立。不手動建立的話,在調試時也VSCode也會生成一個模板,以供修改。

  launch.json文件內容

{
  "version": "0.2.0",
  "configurations": [
    {
      "type": "java",
      "name": "Debug (Launch)",
      "request": "launch",
      "cwd": "${workspaceFolder}/target",
      "sourcePaths": [
        "$(workspaceRoot)/src"
      ],
      "classPaths": [
        "",
        "$(workspaceRoot)/target"
      ],
      "mainClass": "${fileBasenameNoExtension}",
      "args": ""
    }
  ]
}

  其中,cwd是配置javac命令運行的根目錄,這裏應指定編譯後的.class文件所在的根目錄

       sourcePaths配置源碼目錄,classPaths配置編譯後的.class目錄,mainClass配置要運行的主類文件

       args是運行class文件須要添加的參數,根據須要配置便可

  (4) 接下來編譯寫java代碼:JavaTest2.java,Peaple.java,注意這時沒有再報 Classpath is incomplete.的錯誤

  (5) 接下來編譯運行JavaTest2.java,咱們看到兩個類生成的.class文件都保存在target文件夾下

 

 2、用Maven建立Java項目,並在VSCode中開發

  1. 安裝Maven以後,進行配置,我安裝到了C:\Program Files\maven-3.5.4

  系統環境變量裏,添加MAVEN_HOME(或M2_HOME),其值爲C:\Program Files\maven-3.5.4,而後PATH環境變量最後附加上";%MAVEN_HOME%\bin"

  配置完成檢測一下,在命令控制行裏輸入 mvn -version,會輸出maven版本和jdk版本,前提是要有jdk

  2. 在VSCode中配置Maven

    "maven.executable.path": "C:\\Program Files\\maven-3.5.4\\bin\\mvn",
    "java.configuration.maven.userSettings": "C:\\Program Files\\maven-3.5.4\\conf\\settings.xml",
    "maven.terminal.customEnv": [
        {
            "environmentVariable": "JAVA_HOME",      
            "value": "C:\\Program Files\\Java\\jdk1.8.0_172"
        }
    ]

 

  3. 建立一個工做區,用命令控制行進入該工做區,用mvn命令建立一個項目框架:mvn archetype:generate

  maven命令詳見:https://www.cnblogs.com/yjmyzz/p/3495762.html#commentform

  咱們建立一個簡單的maven項目,項目名爲JavaTest3,包名爲test,Maven完了項目框架的建立。

  框架結構以下:

JavaTest3
├── pom.xml
└── src
     └── main
     │   └── java
     │      └── test
     │          └── App.java
     └── test
         └── java
            └── test
                └── AppTest.java

  4. 用VSCode打開JavaTest3文件夾,什麼都不用作,VSCode會自動把.project、.classpath文件和.setting文件夾及裏面的內容建好,甚至也已經生成了.class文件

  5. 按F5進行調試,修改launch.json文件裏mainClass爲「test.App」,運行成功。

 

 

另外,不用maven時,Build failed, do you want to continue?問題時有發生,再繼續關注一下。

上面方法生成的maven項目,在使用時發現不支持java  1.8,會報Lambda expressions are allowed only at source level 1.8 or above錯

要解決上面的問題,要在pom.xml文件的<properties>標籤中添加兩個屬性:

<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>

而後右鍵點擊pom.xml文件,選「Upate project configuration」,就能夠了。

  

 參考文章:

Java in VS Code:https://code.visualstudio.com/docs/languages/java

Building Java project shows error: "Build failed, do you want to continue?":https://github.com/redhat-developer/vscode-java/issues/495

"Classpath is incomplete" warning:https://github.com/redhat-developer/vscode-java/wiki/%22Classpath-is-incomplete%22-warning

maven學習(上)- 基本入門用法:https://www.cnblogs.com/yjmyzz/p/3495762.html#commentform

Java VScode 手動導入jar:https://www.jianshu.com/p/ed1deb28aab9

VS code + Java 配置與使用:http://www.javashuo.com/article/p-obdkaxrr-my.html

配置vscode調試java代碼:https://www.codercto.com/a/12779.html

如下兩個連接殺毒軟件報有病毒,謹慎打開

http://blog.hotsun168.com/index.php/archives/10/

http://blog.hotsun168.com/index.php/archives/16/

相關文章
相關標籤/搜索