小二是公司新来的实习生,之前面试的过程中对答如流,所以我非常看好他。第一天,我给他了一台新电脑,要他先在本地搭建个 Java 开发环境。
二话不说,他就开始马不停蹄地行动了。真没想到,他竟然是通过命令行的方式安装的 JDK,这远远超出了我对他的预期。
我以为,他会使用图形化的方式来安装 JDK 的,就像这样。
还有这样。
结果他是这样的。
卧槽!牛逼高大上啊!
看着他熟练地在命令行里安装 JDK 的样子,我的嘴角开始微微上扬,真不错!这次总算招到了一个靠谱的。
于是我就安排他做一个记录,打算发表在我的小破站《Java 程序员进阶之路》上。从他嘴里了解到,他用的命令行软件管理器叫 chocolatey,这是一个Windows下的命令行软件管理器,可以方便开发者像在Linux下使用yum命令来安装软件,或者像在macOS下使用brew 命令来安装软件,我感觉非常酷炫。
以下是他的记录,一起来欣赏下。
关于shell
对于一名 Java 后端程序员来说,初学阶段,你可以选择在 IDE 中直接编译运行 Java 代码,但有时候也需要在 Shell 下编译和运行 Java 代码。
Windows 下自带的 Shell 叫命令提示符,或者 cmd 或者 powershell,macOS 下叫终端 terminal。
- 终端与 Shell 的区别
- 初次体验 macOS 下的 Shell
但当你需要在生产环境下部署 Java项目或者查看日志的话,就必然会用到 Shell,这个阶段,Shell 的使用频率高到可以用一个成语来形容——朝夕相伴。
一些第三方软件会在原生的 Shell 基础上提供更强大的功能,常见的有 tabby、Warp、xhsell、FinalShell、MobaXterm、Aechoterm、WindTerm、termius、iterm2 等等,有些只能在 Windows 上使用,有些只能在 macOS 上使用,有些支持全平台。还有 ohmyzsh 这种超神的 Shell 美化工具。
这里,我们列举一些 Shell 的基本操作命令(Windows 和 macOS/Linux 有些许差异):
- 切换目录,可以使用 cd 命令切换目录,
cd ..
返回上级目录。
- 目录列表,macos/linux 下可以使用 ls 命令列出目录下所有的文件和子目录(Windows 下使用 dir 命令),使用通配符
*
对展示的内容进行过滤,比如ls *.java
列出所有.java
后缀的文件,如果想更进一步的话,可以使用ls H*.java
列出所有以 H 开头.java
后缀的文件。 - 新建目录,macOS/Linux 下可以使用 mkdir 命令新建一个目录(比如
mkdir hello
可以新建一个 hello 的目录),Windows 下可以使用 md 命令。 - 删除文件,macOS/Linux 下可以使用
rm
命令删除文件(比如rm hello.java
删除 hello.java 文件),Windows 下可以使用 del 命令。 - 删除目录,macOS/Linux 下可以使用
rm -r
命令删除目录以及它所包含的所有文件(比如说rm -r hello
删除 hello 目录)。Windows 下可以使用 deltree 命令。 - 重复命令,macOS/Linux/Windows 下都可以使用上下箭头来选择以往执行过的命令。
- 命令历史,macOS/Linux 下可以使用
history
命令查看所有使用过的命令。Windows 可以按下 F7 键。
- 解压文件,后缀名为“.zip”的文件是一个包含了其他文件的压缩包,macOS/Linux 系统自身已经提供了用于解压的 unzip 命令, Windows 的话需要手动安装。
安装JDK
1)Windows
推荐先安装 chocolatey。这是一个Windows下的命令行软件管理器,可以方便开发者像在Linux下使用yum命令来安装软件,或者像在macOS下使用brew 命令来安装软件,非常酷炫。
The biggest challenge is reducing duplication of effort, so users turn to Chocolatey for simplicity
传统的安装方式要么非常耗时,要么非常低效,在命令行安装软件除了简单高效,还能自动帮我们配置环境变量。
- 官方地址:https://chocolatey.org/
- 安装文档:https://chocolatey.org/install#individual
安装完成后如下图所示:
如果不确定是否安装成功的话,可以通过键入 choco
命令来确认。
这里推荐几个非常高效的操作命令:
- choco search xxx,查找 xxx 安装包
- choco info xxx,查看 xxx 安装包信息
- choco install xxx,安装 xxx 软件
- choco upgrade xxx,升级 xxx 软件
- choco uninstall xxx, 卸载 xxx 软件
如何知道 chocolatey 仓库中都有哪些安装包可用呢?
可以通过上面提到的命令行的方式,也可以访问官方仓库进行筛选。
https://community.chocolatey.org/packages
比如说我们来查找 Java。
好,现在可以直接在shell中键入 choco install jdk8
来安装 JDK8 了,并且会自动将Java加入到环境变量中,不用再去「我的电脑」「环境变量」中新建 JAVA_HOME 并复制 JDK 安装路径配置 PATH 变量了,是不是非常 nice?
稍等片刻,键入 java -version
就可以确认Java是否安装成功了。
不得不承认!非常nice!
2)macOS
首先推荐安装 homebrew,这是macOS下的命令行软件管理器,用来简化 macOS 上软件的安装过程。homebrew 是开源的,在 GitHub 已收获 32k star。
homebrew 的安装也非常的简单,只需要一行命令即可。
官方网址:https://brew.sh/index_zh-cn
- 使用
brew install xxx
可以安装 macOS 上没有预装的软件 - 使用
brew install --cask yyy
可以安装 macOS 其他非开源软件。
这里是 homebrew 常用命令的一个清单,可供参考。
命令 | 描述 |
---|---|
brew update | 更新 Homebrew |
brew search package | 搜索软件包 |
brew install package | 安装软件包 |
brew uninstall package | 卸载软件包 |
brew upgrade | 升级所有软件包 |
brew upgrade package | 升级指定软件包 |
brew list | 列出已安装的软件包列表 |
brew services command package | 管理 brew 安装软件包 |
brew services list | 列出 brew 管理运行的服务 |
brew info package | 查看软件包信息 |
brew deps package | 列出软件包的依赖关系 |
brew help | 查看帮助 |
brew cleanup | 清除过时软件包 |
brew link package | 创建软件包符号链接 |
brew unlink package | 取消软件包符号链接 |
brew doctor | 检查系统是否存在问题 |
安装完 homebrew 后,建议替换homebrew 的默认源为中科大的,原因就不用我多说了吧?替换方法如下所示:
代码语言:javascript复制替换brew.git:
cd "$(brew --repo)"
git remote set-url origin https://mirrors.ustc.edu.cn/brew.git
替换homebrew-core.git:
cd "$(brew --repo)/Library/Taps/homebrew/homebrew-core"
git remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git
如何知道 homebrew 仓库中都有哪些安装包可用呢?
第一种,通过 brew search xxx
命令搜索,比如说我们要搜索 jdk
第二种,通过 homebrew 官网搜索,比如说我们要搜索 openjdk。
官方地址:https://formulae.brew.sh
这里有一份不错的 homebrew 帮助文档,可供参考:
https://sspai.com/post/56009
OK,我们来安装JDK,只需要简单的一行命令就可以搞定。
brew install openjdk@8
对比下载安装包,通过图形化界面的方式安装 JDK,是不是感觉在 Shell 下安装 JDK 更炫酷一些?
关键是还省去了环境变量的配置。
记得还没有走出新手村的时候,就经常被环境变量配置烦不胜烦。那下载这种命令行的方式,要比手动在环境变量中配置要省事一百倍,也更不容易出错。
关于编辑器
安装完 Java 之后,你还需要一个编辑器,用来编写 Java 代码。
编辑器多种多样,常见的有集成开发环境(IDE,比如 Intellij IDEA 和 vscode),和简单的文本编辑工具(比如 sublime text)。
我建议这三个工具都要装,日常开发中,我会在这三个编辑器中来回切换。
Intellij IDEA:主要用来编写Java代码,并且最好安装旗舰版,社区版用来学习JavaSE部分是绰绰有余的,但要想拥有更强大的生产力,旗舰版是必须的,因为功能更加强大。
比如说 idea 旗舰版中可以直接通过 Initializr 来创建springboot项目,但社区版就没有此功能。
vscode:更加轻量级的 IDE,在编写Java代码上可以和idea媲美,但要想调试Java代码的话,vscode 和idea的差距还是非常明显的。
我会使用 Intellij IDEA 开发编程喵的后端代码,vscode 来开发编程喵的前端代码。
sublime text:功能更强大的文本编辑器,比记事本这种强大一万倍,也更符合21世纪开发者的外观审美。如果只是简单的修改一下代码格式,或者注释,显然更加方便,因为idea还是比较吃内存的,出差旅行的时候,在笔记本上紧急修改一些代码时,更易用。
我会配合 GitHub 桌面版来使用 sublime text,编辑 MD 文档的时候会比较舒服。
有了 chocolatey 和 homebrew,以后再安装任何一款软件,只要仓库里有,只需要一行命令就可以搞定了,还是非常值得给大家安利的。
没有什么使我停留——除了目的,纵然岸旁有玫瑰、有绿荫、有宁静的港湾,我是不系之舟。