java 使用sdk_使用SDKMAN管理多个Java SDK! 轻松

java 使用sdk

SDKMAN! 是用于管理多个软件开发套件的并行版本的便捷工具。 该工具对Java开发人员特别有用,因为它支持JVM的SDK,例如Java,Groovy,Scala,Kotlin和Ceylon。 还支持Gradle,Maven,Spring Boot和许多其他工具。

  • 管理Java版本
  • 安装Maven和Gradle
  • 安装Spring Boot CLI
  • 链接

SDKMAN! 尽管最容易在所有基于Unix的系统上安装,但所有主要操作系统(包括Windows)都支持该功能。

在macOS上,打开终端并运行:

 curl -s " https://get.sdkman.io " | bash | bash 

下载完成后,重新启动终端会话或运行:

 source "$HOME/.sdkman/bin/sdkman-init.sh" 

提示:我默认使用iTerm2终端。 在此博客文章中了解我在macOS上使用的工具: macOS:(Java)开发人员的必备工具

安装完成后, SDKMAN! 提供了用于管理SDK的便捷sdk命令,称为Candidates 。 要列出所有可用的候选人,请使用sdk list命令。

管理Java版本

我最喜欢SDKMAN的地方! 在您的操作系统中管理不同的Java版本是一件轻而易举的事情。 您可以使用基本命令列出,安装,卸载并将选定的Java版本设置为默认版本。

  • 要列出可用的Java版本,请运行:

    sdk list java

 $ sdk list java  ================================================================================  Available Java Versions  ================================================================================ Vendor       | Use | Version     | Dist   | Status    | Identifier  -------------------------------------------------------------------------------- AdoptOpenJDK |    | 13.0 . 1 .j9   | adpt   |           | .j9   | adpt   |           | 13.0 . 1 .j9-adpt |    | 13.0 . 1 .hs   | adpt   |           | .hs   | adpt   |           | 13.0 . 1 .hs-adpt GraalVM      |    | 19.3 . 0 .r11  | grl    |           | .r11  | grl    |           | 19.3 . 0 .r11-grl |    | 19.3 . 0 .r8   | grl    |           | .r8   | grl    |           | 19.3 . 0 .r8-grl |    | 19.3 . 0.2 .r11 | grl    |           | .r11 | grl    |           | 19.3 . 0.2 .r11-grl Java.net     |    | 15 .ea. 2 | open   |           | | open   |           | 15 .ea. 2 -open |    | 14 .ea. 28 | open   |           | | open   |           | 14 .ea. 28 -open | >>> | 13.0 . 1 | open   | installed | | open   | installed | 13.0 . 1 -open |    | 12.0 . 2 | open   | installed | | open   | installed | 12.0 . 2 -open |    | 11.0 . 2 | open   |           | | open   |           | 11.0 . 2 -open |    | 10.0 . 2 | open   |           | | open   |           | 10.0 . 2 -open |    | 9.0 . 4 | open   |           | | open   |           | 9.0 . 4 -open  ================================================================================  Use the Identifier for installation: $ sdk install java 11.0 . 3 .hs-adpt  ================================================================================ 
  • 要安装给定版本,请使用标识符

    sdk install java 12.0.2-open

可以在家用SDKMAN中找到已安装Java版本的二进制文件 默认为~/.sdkman/candidates/java

 $ ls -al ~/.sdkman/candidates/java/  drwxr-xr-x 9 rafal.borowiec staff 288 Jan 4 00 : 33 12.0 . 2 -open  drwxr-xr-x 9 rafal.borowiec staff 288 Oct 6 14 : 05 13.0 . 1 -open  lrwxr-xr-x 1 rafal.borowiec staff 57 Jan 4 00 : 20 current -> /Users/rafal.borowiec/.sdkman/candidates/java/ 13.0 . 1 -open 

例如,如果要在IntelliJ的项目中使用多个版本,这将很有用。

  • 要将给定版本设置为默认运行:

    sdk default java 12.0.2-open

我们可以使用sdk default命令快速验证更改版本的难易程度:

 $ java -version  openjdk version "13.0.1" 2019 - 10 - 15  OpenJDK Runtime Environment (build 13.0 . 1 + 9 )  OpenJDK 64 -Bit Server VM (build 13.0 . 1 + 9 , mixed mode, sharing)  $ ls -al ~/.sdkman/candidates/java/  drwxr-xr-x 9 rafal.borowiec staff 288 Jan 4 00 : 33 12.0 . 2 -open  drwxr-xr-x 9 rafal.borowiec staff 288 Oct 6 14 : 05 13.0 . 1 -open  lrwxr-xr-x 1 rafal.borowiec staff 57 Jan 4 00 : 20 current -> /Users/rafal.borowiec/.sdkman/candidates/java/ 13.0 . 1 -open  $ sdk default java 12.0 . 2 -open  Default java version set to 12.0 . 2 -open  $ java -version  openjdk version "12.0.2" 2019 - 07 - 16  OpenJDK Runtime Environment (build 12.0 . 2 + 10 )  OpenJDK 64 -Bit Server VM (build 12.0 . 2 + 10 , mixed mode, sharing)  $ ls -al ~/.sdkman/candidates/java/  drwxr-xr-x 9 rafal.borowiec staff 288 Jan 4 00 : 33 12.0 . 2 -open  drwxr-xr-x 9 rafal.borowiec staff 288 Oct 6 14 : 05 13.0 . 1 -open  lrwxr-xr-x 1 rafal.borowiec staff 57 Jan 5 11 : 49 current -> /Users/rafal.borowiec/.sdkman/candidates/java/ 12.0 . 2 -open 
  • 要在当前终端会话中使用给定版本,请运行:

    sdk use java 12.0.2-open

安装Maven和Gradle

Maven和Gradle是开源工具,用于自动化构建应用程序和管理其依赖项的过程。 两种工具都可以使用SDKMAN进行管理

  • 使用以下命令安装Maven:
 $ sdk install maven  Downloading: maven 3.6 . 3  In progress... 100.0 %  Installing: maven 3.6 . 3  Done installing!  Setting maven 3.6 . default as 3 . 
  • 使用以下命令安装Gradle:
 $ sdk install gradle  Downloading: gradle 6.0 . 1  In progress... 100.0 %  Installing: gradle 6.0 . 1  Done installing!  Setting gradle 6.0 . default as 1 . 

如果您需要多个版本的Gradle或Maven,可以通过为sdk install maven 3.6.1提供所需的版本来安装它们,然后sdk install maven 3.6.1 ,然后使用sdk setsdk default命令在它们之间切换。

安装Spring Boot CLI

Spring Boot CLI是一个命令行工具,如果您想快速开发Spring应用程序,可以使用它。

您可以使用sdk list springboot命令检查可用的Spring Boot版本:

 $ sdk list springboot  ================================================================================  Available Springboot Versions  ================================================================================ 2.2 . 2 .RELEASE 2.0 . 1 .RELEASE 1.5 . 1 .RELEASE 1.2 . 3 .RELEASE 2.2 . 1 .RELEASE 2.0 . 0 .RELEASE 1.4 . 7 .RELEASE 1.2 . 2 .RELEASE 2.2 . 0 .RELEASE 1.5 . 22 .RELEASE 1.4 . 6 .RELEASE 1.2 . 1 .RELEASE 

通过运行sdk install springboot安装默认版本。

安装后, spring命令将可用:

 $ spring  usage: spring [--help] [--version] <command> [<args>] 

您现在可以通过运行以下命令来引导新的Spring Boot项目:

 $ spring init --build=gradle --java-version= 12 --dependencies=web --packaging=jar my-app.zip  Using service at https: //start.spring.io  Content saved to 'my-app.zip' 

解压缩该zip文件,然后从应用程序目录中运行:

 gradle bootRun  Tomcat started on port(s): (http) with context path '' Tomcat started on port(s): 8080 (http) with context path  2020 - 01 - 04 12 : 36 : 59.704 INFO 57156 --- [          main] com.example.myapp.DemoApplication       : Started DemoApplication in 1.251 seconds (JVM running for 1.485 ) 

注意:以上命令使用了随SDKMAN一起安装的全局Gradle发行版! ,您也可以通过调用./gradlew命令在本地Gradle安装中运行它。

应用程序启动后,请检查它是否响应您的请求:

 $ http localhost: 8080  HTTP/ 1.1 404  Connection: keep-alive  Content-Type: application/json  Date: Sun, 2020 Jan 05 Jan 2020 11 : 38 : 08 GMT  Keep-Alive: timeout= 60  Transfer-Encoding: chunked  Vary: Origin  Vary: Access-Control-Request-Method  Vary: Access-Control-Request-Headers  { "error" : "Not Found" , "message" : "No message available" , "path" : "/" , "status" : 404 , "timestamp" : "2020-01-05T11:38:08.041+0000"  } 

提示:我使用的是httpie客户端,而不是cURL 。 在此博客文章中了解我在macOS上使用的工具: macOS:(Java)开发人员的必备工具

链接

  • SDKMAN!
  • macOS:(Java)开发人员必备工具

您是否使用SDKMAN! ? 您什么时候觉得有用? 在评论中分享您的想法。

翻译自: https://www.javacodegeeks.com/2020/01/manage-multiple-java-sdks-with-sdkman-with-ease.html

java 使用sdk

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/331526.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ftp服务器在线查看文件内容,ftp服务器PDF文件在线查看的实现方法

URL形式&#xff1a;// http://localhost:2692/PDFVIEWER/web/viewer.html?filehttp://localhost:2692/TOV/DASystem/GetStreaem?path%3Dftp://ftp账号:ftp密码IP地址/0001/E_File3/2017526/test.PDF注意&#xff1a;PDFVIEWER/web/viewer.html是一个PDF插件地址链接后台方法…

XML——写出XML文档(XSLT+StAX)

【0】README 0.1&#xff09; 本文描述部分转自 core java volume 2 &#xff0c; 旨在理解 XML——写出XML文档&#xff08;XSLTStAX&#xff09; 的基础知识 &#xff1b; 0.2&#xff09; for source code, please visit https://github.com/pacosonTang/core-java-volume…

算法五之快速排序

一、快速排序&#xff08;Quicksort&#xff09;思想设要排序的数组是A[0]……A[N-1]&#xff0c;首先任意选取一个数据&#xff08;通常选用数组的第一个数&#xff09;作为关键数据&#xff0c;然后将所有比它小的数都放到它前面&#xff0c;所有比它大的数都放到它后面&…

jvm 助记符_您的JVM是否泄漏文件描述符-像我的一样?

jvm 助记符前言&#xff1a;此处描述的两个问题是在一年前发现并修复的。 本文仅用作历史证明&#xff0c;也是有关解决Java中文件描述符泄漏的初学者指南。 在Ultra ESB中&#xff0c;我们使用内存RAM磁盘文件缓存来进行快速且无垃圾的有效负载处理。 一段时间以前&#xff0…

08r2系统服务器开索引,SQLSERVER2008R2正确使用索引

T1表 10000000万条数据,(插入时间36分钟&#xff0c;count(*)查询19秒&#xff0c;空间占用670M左右)sql1.真正充分的利用索引好比like 张% 就是符合SARG(符合扫描参数)标准而like %张 就不符合该标准数据库通配符%在字符串首字符的使用会致使索引没法使用&#xff0c;虽然实际…

算法六之直接插入排序

一、直接插入排序基本思想 直接插入排序(straight insertion sort)的做法是&#xff1a;每次从无序表中取出第一个元素&#xff0c;把它插入到有序表的合适位置&#xff0c;使有序表仍然有序。第一趟比较前两个数&#xff0c;然后把第二个数按大小插入到有序表中&#xff1b; 第…

网络——连接到server

【0】README 0.1&#xff09; 本文描述部分转自 core java volume 2 &#xff0c; 旨在理解 网络——连接到server 的基础知识 &#xff1b; 0.2&#xff09; for source code, please visit https://github.com/pacosonTang/core-java-volume/blob/master/coreJavaAdvanced/…

文件服务器监控用户修改信息,文件服务器监控日志软件

文件服务器监控日志软件 内容精选换一换有以下几种现象&#xff1a;将制作好的SD卡插入开发者板并上电后&#xff0c;开发者板LED1与LED2灯状态信息异常。将制作好的SD卡插入开发者板&#xff0c;并通过USB方式连接Ubuntu服务器&#xff0c;上电、开发者板启动完成后&#xff0…

java –cp ./:_成为Java流大师–第3部分:终端操作

java –cp ./:比尔盖茨曾经说过&#xff1a;“我选择一个懒惰的人去做一件困难的事情&#xff0c;因为一个懒惰的人会找到一个简单的方法来做。” 关于流&#xff0c;没有什么比这更真实了。 在本文中&#xff0c;您将学习Stream如何通过在调用终端操作之前不对源元素执行任何计…

Oracle入门(四)之查询基本信息

一、查询基本信息 &#xff08;1&#xff09; 查询实例服务SQL> show parameter instance name&#xff08;2&#xff09;查询数据库名字SQL> show parameter db_name;&#xff08;3&#xff09;查询数据库名字SQL>select name from v$database;&#xff08;4&#xf…

网络——实现服务器

【0】README 0.1&#xff09; 本文描述部分转自 core java volume 2 &#xff0c; 旨在理解 网络——实现服务器 的基础知识 &#xff1b; 0.2&#xff09; for source code, please visit https://github.com/pacosonTang/core-java-volume/blob/master/coreJavaAdvanced/ch…

image 闪烁 c# ajax updatepanel,Why doesn't asp:UpdatePanel refresh an Image?

问题I have the following UpdatePanel that gets an image from an ashx handler all of which works fine when the page is refreshed. However, when the timer fires, the label is refreshed with current time, but never the image.ImageUrl"~/getImage.ashx?cam…

kafka处理流式数据_通过Apache Kafka集成流式传输大数据

kafka处理流式数据从实时过滤和处理大量数据&#xff0c;到将日志数据和度量数据记录到不同来源的集中处理程序中&#xff0c;Apache Kafka越来越多地集成到各种系统和解决方案中。 使用CData Sync &#xff0c;可以轻松地将此类解决方案应用于任何CRM&#xff0c;ERP或Analyti…

Oracle入门(十一)之SQL

一、SQL组成 SQL的组成 核心SQL主要有四个部分&#xff1a; 1、数据定义语言即SQL DDL(Data Definition Language )&#xff0c;用于定义 SQL模式、基本表、视图、索引等结构。 CREATE、ALTER、DROP、REVOKE、GRANT2、数据操纵语言 即SQL DML(Data Manipulation Language)。 数…

常见 Java 字节码 指令 助记符

转自&#xff1a; 常见java字节码 有时候为了能理解JVM对程序所做的优化等&#xff0c;需要查看程序的字节码&#xff0c;因此知道了解一些常见的指令集很重要&#xff01; 指令码 助记符 说明 0x00 nop 什么都不做 0x01 aconst_null 将null推送至栈顶 0x02…

等价关系和等价类_确定Java等价性的新时代?

等价关系和等价类几个月前&#xff0c;我读了一篇题为“确定Java等价性的新时代&#xff1f;”的博客文章。 这在某种程度上与我当时在我那令人沮丧的副项目Java :: Geci中开发的内容非常吻合 。 我建议您暂停阅读&#xff0c;阅读原始文章&#xff0c;然后再返回此处&#xff…

数据结构(一)之链表

一、链表链表是一种物理存储单元上非连续、非顺序的存储结构&#xff0c;数据元素的逻辑顺序是通过链表中的指针链接次序实现的。 链表由一系列结点&#xff08;链表中每一个元素称为结点&#xff09;组成&#xff0c;结点可以在运行时动态生成。每个结点包括两个部分&#xff…

高级数据结构实现——自顶向下伸展树

【0】README 1&#xff09; 本文部分内容转自 数据结构与算法分析&#xff0c;旨在理解 高级数据结构实现——自顶向下伸展树 的基础知识&#xff1b; 2&#xff09; 源代码部分思想借鉴了数据结构与算法分析&#xff0c;有一点干货原创代码&#xff0c;for original source …

测试框架 如何测试私有方法_高效的企业测试–测试框架(5/6)

测试框架 如何测试私有方法本系列文章的这一部分将介绍测试框架以及我在何时以及是否应用它们方面的想法和经验。 关于测试框架的想法 我对大多数测试框架不太满意的原因是&#xff0c;按照我的观点&#xff0c;它们大多增加了语法上的便利性和便利性&#xff0c;但是本质上并…

数据结构(二)之链表反转

一、链表反转 1、反转非递归算法 2、反转递归算法 链表结点&#xff1a; package cn.edu.scau.mk;/**** author MK* param <T>*/ public class Node<T> {private T data;private Node<T> next null;public Node(T data) {this.data data;}public T getD…