VsCode Java Visual Studio Code całkiem niedawno ogłosił możliwość edytowania kod Javy. Jak jednak to wygląda w rzeczywistości. Zawodowo nie programuje w Javie, ale na potrzeby bloga czasami chce sprawdzić proste fragmenty kodu Javy. Przykładowo robiłem to dla cyklu na blogu o tytule “C# i Java: Porównanie składni i szybkie przypomnienie”.

Istnieje dużo artykułów a nawet prelekcji mówiących o tym jak Visual Studio Code z Javą jest cudowne i wspaniałe. Rzeczywistość jest jednak trochę inna. Otóż rozpoczęcie pracy nie było dla mnie takie intuicyjne. W pewnym momencie nawet chciałem się podać ponieważ nie ma artykułu, który krok po kroku pokazał co trzeba zrobić by to wszystko działało.

Według blogów i filmików odpalasz Visual Studio Code przy folderze z projektu Javą i wszystko magicznie działa. Co jednak jeśli chcesz zacząć pracę od zera. Co jeśli świat Javy nie jest tobie znany?

Chciałbym tobie pokazać tą krótką podróż. Jak mi się udało stworzy środowisko pracy w Visual Studio Code do pracy z Javą oraz jak zrobić prosty szablon projektowy.

Zanim zaczniesz musisz do Visual Studio Code pobrać następujące dodatki.

Jeden wspiera składnie języka.

Language Support for Java

Drugi daje możliwość debugowania kodu.

Java Debug Extension for Visual Studio Code

Zauważyłem, że w sklepie dodatków jest także rozszerzenie, które łączy dwa poprzednie omówione dodatki w formie jednego.

Java Extension Pack

Do łatwego uruchomienia kodu Javy warto zainstalować ten dodatek. Code Runner

Code Runner

Stworzyłem prosty plik “a.java”. Od Visual Studio Code dostałem komunikat, że brakuje mi JDK 8. (Java 8 is required to run. Please download and install a JDK 8)

Java 8 is required to run. Please download and install a JDK 8

Nie ma problemu trzeba ściągnąć odpowiednią wersje JDK i zainstalować.

Red hat Open JDK

Tutaj jednak prawie się zatrzymałem. Pomimo instalacji i restartowania systemu i Visual Studio Code komunikat nie znikał. Miałem problem ze znalezieniem przyczyny, ale ostatecznie się udało.

Visual Studio Code Settings

W konfiguracji Visual Studio Code ścieżka do javy była u mnie pusta. Uzupełniłem więc parametr java.home miejsce gdzie znajduje się JDK.

U mnie była to ścieżka C:\Program Files\Java\jdk1.8.0_121

Setting java.home

Mam więc plik javy o nazwie “a”. Klasa pliku powinna nazywa się tak samo. Wszystko jest gotowe by uruchomić kod.

class a {
    public static void main(String[] args) {
        System.out.println("Hello World!"); // Display the string.
    }
}

Run Code Visual Studio Code

W terminalu za nas uruchomi się odpowiednie polecenie kompilacyjne i otrzymamy wynik kodu.

Terminal Javy w Visual Studio Code

Jak na razie nasza zabawa z Javą miała tylko jedną przeszkodę. Co jednak z debugowanie kodu?

Problemy

Zaczynamy debugowanie tak jak z każdy innym projektem - poprzez wybranie opcji z menu Debug –> Start Debugging.

Debug -> Start Debugging

Wybieramy potem opcję debugowania “Javy” i tworzy nam się plik konfiguracyjny.

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "java",
            "name": "Debug (Launch)-a",
            "request": "launch",
            "mainClass": "a",
            "args": ""
        },
        {
            "type": "java",
            "name": "Debug (Attach)",
            "request": "attach",
            "hostName": "localhost",
            "port": 0
        }
    ]
}

Niby wszystko jest w porządku. W końcu plik konfiguracyjny wskazuje na plik “a.java”. Niestety Visual Studio Code dam na następujące ostrzeżenie. “Classpath is incomplete. Only syntax errors will be reported”

Classpath is incomplete. Only syntax errors will be reported

Ostrzeżenie nie jest bardzo jasne, ale udało mi się znaleźć przyczynę. Okazuje się, że Visual Studio potrzebuje plików informacyjnych jak “.classpath” by rozumieć jak klasy i paczki są rozłożone w projekcie.

Co nam teraz pozostaje. Możemy stworzyć projekt w Eclipse i potem go otworzyć w Visual Studio Code albo…

…albo tak jak Visual Studio Code nas nauczyło wcześnie zobaczyć jak można tworzyć projekty Javy przy pomocy terminale. Takie narzędzie istnieje w świecie Javy i nazywa się Maven.

Maven pozwala na tworzenie przeróżnych projektów Javy przy użyciu poleceń tekstowych.

MVN czyli Maven

Instalacja Maven w systemie Windows jest bardzo złożona i myślę wymaga to oddzielnego wpisu. Ważne żebyś miał możliwość uruchomienie polecenia mvn w swojej konsoli.

mvn -veriosn Maven

To narzędzie nie zostało stworzone z myślą o Windows. Widać to po wykryciu systemu operacyjnego na 8 gdy ja mam Windows 10.

W terminalu Visual Studio Code uruchom następujące polecenie.

mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifact
Id=maven-archetype-quickstart -DinteractiveMode=false

Zostało ono ściągnięte z pierwszych kroków w tutorialu do Maven.

https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html

Po utworzeniu aplikacji wejdź do folderu swojej aplikacji.

Open Folder Javy

Ten szablon zawiera tylko jeden plik klasy. Jak się domyślasz w nim jest tylko kod tworzący napis “Hello World”.

Java Aplikacja

Teraz nie będziemy mieć problemów z debugowaniem ponieważ mamy odpowiednie pliki konfiguracyjne jak .classpath i .project.

Pliki konfiguracyjne

Wybierz jeszcze raz polecenie “Start Debugging”

Start Debugging Visual Studio Code

Zostanie za ciebie utworzony plik konfiguracyjny, który zostanie uzupełniony na podstawie plików jak classpath.

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "type": "java",
            "name": "Debug (Launch)-App<my-app>",
            "request": "launch",
            "mainClass": "com.mycompany.app.App",
            "projectName": "my-app",
            "args": ""
        },
        {
            "type": "java",
            "name": "Debug (Attach)",
            "request": "attach",
            "hostName": "localhost",
            "port": 0
        }
    ]
}

Breakpoint działają.

Breakpoint Java

Visual Studio Code na pierwszy rzut oka ma bogatego pomocnika kodu. Trudno jest jednak określić mi czy rzeczywiście w nim można byłoby pisać poważne projekty.

pomocnika kodu Javy

A teraz mały bonus.

Bonus : MVN tworzenie paczki

By utworzyć paczkę czy tak zwany JAR z naszej aplikacji wystarczy w terminale wpisać polecenie

code class="hljs cmd">mvn package

mvn package

Nazwa paczki jest tworzona zgodnie z plikiem konfiguracyjnym “pom.xml”.

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mycompany.app</groupId>
  <artifactId>my-app</artifactId>
  <packaging>jar</packaging>
  <version>1.0-SNAPSHOT</version>
  <name>my-app</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

Plik Jar znajduje się w folderze target.

miejsce paczk JAR

Kod z pliku JAR można uruchomić poniższym poleceniem.

java -cp target/my-app-1.0-SNAPSHOT.jar com.mycompany.app.App

Myślę, że tyle tobie wystarczy by zacząć pracę z Javą w Visual Studio Code. Cały teraz sekret polega na nauce poleceń Maven i poznaniu wszystkich dostępnych szablonów aplikacji Javy.