[JAVA] Utilisez SDKMAN! Avec Git Bash

TL;DR

Lorsque vous utilisez Git Bash (MINGW64) ou MSYS2 fourni avec Git for Windows, utilisez SDKMAN! En ajoutant ce qui suit à .bashrc etc. Sera possible.

.bashrc


export MSYS=winsymlinks:lnk

L'installation elle-même est la suivante, elle est donc omise.

https://sdkman.io/install

Serpentin

Pourquoi avez-vous essayé d'utiliser SDKMAN!

JDK et divers fournisseurs et communautés sont en train de le construire et de le fournir, je voudrais donc faciliter le changement. (Penses-tu?)

Si vous souhaitez faire ce qui précède, vous aurez besoin d'un outil pour gérer la version, tel que JDK. Dans le système JVM, il existe un outil appelé SDKMAN!, Alors utilisez-le.

Veuillez vous référer à ce qui suit pour le SDK qui peut être installé à l'aide de SDKMAN! (Indiqué parce qu'il est écrit. Divers éléments tels que les langages, les outils, les frameworks d'application, etc. peuvent être installés).

Défis lors de l'utilisation de SDKMAN! Avec Git Bash

En regardant ce qui suit, il semble qu'il puisse être utilisé normalement avec Git Bash, mais bien que je puisse télécharger le JDK, j'obtiens une erreur lorsque j'essaye de le définir par défaut.

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

↑ active le mode de débogage. (Définissez sdkman_debug_mode dans ~ / .sdkman / etc / config sur true)

En regardant le code, il semble qu'il y ait une erreur dans le rm -f suivant.

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

La raison de l'erreur est que si vous ne le définissez pas au début, ln -s ne créera pas de lien symbolique mais créera une copie. Puisqu'il s'agit d'un répertoire au lieu d'un lien symbolique, rm -f entraînera une erreur.

Ainsi, en revenant au début et en définissant MSYS = winsymlinks: lnk, un lien symbolique (raccourci Windows) est créé à la place d'une copie, et il peut être utilisé en toute sécurité.

référence

Recommended Posts

Utilisez SDKMAN! Avec Git Bash
Utiliser Git avec SourceTree et Eclipse
Utiliser ProGuard avec Gradle
Utiliser Puphpeteer avec Docker
Utiliser Webmock avec Rspec
Utiliser les WebJars avec Gradle
Utilisez jlink avec gradle
Utiliser des couches Lambda avec Java
Utiliser GDAL avec Python avec Docker
Utiliser le shell intégré de docker avec cygwin [docker exec -it bash]
Utiliser le certificat pfx avec Okhttp3
Utilisez plusieurs bases de données avec Rails 6.0
Utiliser Spring JDBC avec Spring Boot
Utilisez Ruby avec Google Colab
Utiliser SpatiaLite avec Java / JDBC
Utilisez log4j2 avec YAML + Gradle
[Docker] À utiliser à tout moment avec Docker + Rails
Utiliser PlantUML avec Visual Studio Code
Utiliser l'authentification de base avec Spring Boot
Utiliser java avec MSYS et Cygwin
Utiliser le constructeur avec des arguments dans cucumber-picocontainer
Utiliser le type inet PostgreSQL avec DbUnit
Utilisez bootstrap 4 avec PlayFramework 2.6 (pas de CDN)
Utilisez JDBC avec Java et Scala.
Utiliser Java 11 avec Google Cloud Functions
Comment utiliser mssql-tools avec Alpine
À partir de Spring Boot 0. Utilisez Spring CLI
Utilisation de cuda11.0 avec pytorch en utilisant Docker