[JAVA] Verwenden Sie SDKMAN! Mit Git Bash

TL;DR

Wenn Sie Git Bash (MINGW64) oder MSYS2 verwenden, das mit Git für Windows geliefert wird, verwenden Sie SDKMAN! Fügen Sie Folgendes zu .bashrc usw. hinzu. Wird möglich sein.

.bashrc


export MSYS=winsymlinks:lnk

Die Installation selbst ist wie folgt, daher wird sie weggelassen.

https://sdkman.io/install

Serpentin

Warum haben Sie versucht, SDKMAN zu verwenden?

JDK und verschiedene Anbieter und Communities bauen und stellen es bereit, daher möchte ich den Wechsel vereinfachen. (Denkst du?)

Wenn Sie die oben genannten Schritte ausführen möchten, benötigen Sie ein Tool zum Verwalten der Version, z. B. JDK. Im JVM-System gibt es ein Tool namens SDKMAN! Verwenden Sie dieses Tool.

Informationen zum SDK, das mit SDKMAN installiert werden kann, finden Sie im Folgenden! (Wird angezeigt, da es geschrieben ist. Verschiedene Dinge wie Sprachen, Tools und Anwendungsframeworks können installiert werden.)

Herausforderungen bei der Verwendung von SDKMAN! Mit Git Bash

Im Folgenden scheint es, dass es normal mit Git Bash verwendet werden kann, aber obwohl ich das JDK herunterladen kann, erhalte ich eine Fehlermeldung, wenn ich versuche, es auf die Standardeinstellung zu setzen.

https://sdkman.io/install

$ sdk default java 8.0.202.hs-adpt
SDKMAN: No update needed. Using existing candidates cache: ant,asciidoctorj,bpipe,ceylon,crash,cuba,cxf,gaiden,glide,gradle,grails,groovy,groovyserv,infrastructor,java,jbake,kotlin,kscript,lazybones,leiningen,maven,micronaut,sbt,scala,spark,springboot,sshoogr,vertx,visualvm
Not refreshing version cache now...
Validate java 8.0.202.hs-adpt for MINGW64_NT-10.0: valid
Validation URL: https://api.sdkman.io/2/candidates/validate/java/8.0.202.hs-adpt/mingw64_nt-10.0
rm: cannot remove '/c/Users/tenten0213/.sdkman/candidates/java/current': Is a directory
ln: failed to create symbolic link '/c/Users/tenten0213/.sdkman/candidates/java/current/8.0.202.hs-adpt': File exists

↑ aktiviert den Debug-Modus. (Setzen Sie sdkman_debug_mode in ~ / .sdkman / etc / config auf true)

Wenn man sich den Code ansieht, scheint es, dass im folgenden rm -f ein Fehler vorliegt.

https://github.com/sdkman/sdkman-cli/blob/b63ee15c8885b89ea09dee4f965fbd48167398d1/src/main/bash/sdkman-path-helpers.sh#L85

Der Grund für den Fehler ist, dass ln -s keine symbolische Verknüpfung erstellt, sondern eine Kopie erstellt, wenn Sie ihn nicht am Anfang festlegen. Da es sich um ein Verzeichnis anstelle eines symbolischen Links handelt, führt rm -f zu einem Fehler.

Wenn Sie also zum Anfang zurückkehren und "MSYS = winsymlinks: lnk" setzen, werden symbolische Links (Windows-Verknüpfungen) anstelle von Kopien erstellt und können sicher verwendet werden.

Referenz

Recommended Posts

Verwenden Sie SDKMAN! Mit Git Bash
Verwenden von Git mit SourceTree und Eclipse
Verwenden Sie ProGuard mit Gradle
Verwenden Sie Puphpeteer mit Docker
Verwenden Sie Webmock mit Rspec
Verwenden Sie WebJars mit Gradle
Verwenden Sie jlink mit gradle
Verwenden Sie Lambda-Ebenen mit Java
Verwenden Sie GDAL mit Python mit Docker
Verwenden Sie die In-Container-Shell des Dockers mit cygwin [docker exec -it bash]
Verwenden Sie das pfx-Zertifikat mit Okhttp3
Verwenden Sie mit Rails 6.0 mehrere Datenbanken
Verwenden Sie Spring JDBC mit Spring Boot
Verwenden Sie Ruby mit Google Colab
Verwenden Sie SpatiaLite mit Java / JDBC
Verwenden Sie log4j2 mit YAML + Gradle
[Docker] Wird immer mit Docker + Rails verwendet
Verwenden Sie PlantUML mit Visual Studio Code
Verwenden Sie die Standardauthentifizierung mit Spring Boot
Verwenden Sie Java mit MSYS und Cygwin
Verwenden Sie den Konstruktor mit Argumenten in cucumber-picocontainer
Verwenden Sie den PostgreSQL-Inet-Typ mit DbUnit
Verwenden Sie Bootstrap 4 mit PlayFramework 2.6 (kein CDN)
Verwenden Sie JDBC mit Java und Scala.
Verwenden Sie Java 11 mit Google Cloud-Funktionen
Wie man mssql-tools mit alpine benutzt
Beginnend mit Spring Boot 0. Verwenden Sie Spring CLI
Verwenden von cuda11.0 mit pytorch mit Docker