Skip to content

Commit 9149ae2

Browse files
committed
Updated src/README.md'.
1 parent a96932e commit 9149ae2

File tree

2 files changed

+89
-1
lines changed

2 files changed

+89
-1
lines changed

src/README.md

Lines changed: 88 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,88 @@
1+
# Java 编程学习项目 ☕️
2+
3+
4+
这是一个学习 Java 的项目。使用 Eclipse IDE/VIM、Gradle/NPM 构建工具。后期会涉及到 NPM 的使用。主要学习 Java 的基础知识,Java 本地应用程序的编写。 __项目使用 JDK `11.0.12`__ 语言环境。
5+
6+
在线阅读:[java.xfoss.com](https://java.xfoss.com)
7+
8+
本地阅读:[`mdbook` 本地运行](./src/howto_read_locally.md)
9+
10+
---
11+
12+
## 0. 环境搭建
13+
14+
本项目是在 Ubuntu Linux 20.04 LTS 上进行的。
15+
16+
17+
- 安装JDK
18+
19+
JDK的当前LTS版是 `JDK 17.0.1`(Oracle, 2021-11),你可以直接从 [Java Downloads | jdk.java.net](https://jdk.java.net/java-se-ri/11) 下载。openjdk-11+28_linux-x64_bin.tar.gz` 压缩包有 178.9M 大小。
20+
21+
运行下面的命令,就安装好 OpenJDK 了。
22+
23+
```bash
24+
$sudo tar xf /path/to/openjdk-11+28_linux-x64_bin.tar.gz -C /opt/
25+
$sudo ln -s /opt/openjdk-11+28 /opt/jdk
26+
$sudo update-alternatives --install "/usr/bin/java" "java" "/opt/jdk/bin/java" 1
27+
$sudo update-alternatives --install "/usr/bin/javac" "javac" "/opt/jdk/bin/javac" 1
28+
```
29+
30+
运行 `$java -version``$javac -version` 测试 JDK 是否安装妥当。
31+
32+
- 安装 [Gradle](https://gradle.org/)
33+
34+
参考 Gradle 官网上使用 [SDKMAN!](http://sdkman.io/) 直接安装即可。
35+
36+
- 安装Maven
37+
38+
[Apache Maven](http://maven.apache.org/) 可以直接下载,下载到的 `apache-maven-3.8.4-bin.tar.gz`压缩包,大小约 9M,安装步骤与JDK的略有不同:
39+
40+
```bash
41+
$sudo tar xf /path/to/apache-maven-3.8.4-bin.tar.gz -C /opt/
42+
$sudo ln -s /opt/apache-maven-3.8.4 /opt/mvn
43+
$sudo vim.gtk /etc/profile.d/mvn.sh
44+
$sudo chmod +x /etc/profile.d/mvn.sh
45+
```
46+
47+
其中建立了一个 `/etc/profile.d/mvn.sh` 文件,并修改为了可执行文件。该文件的内容为:
48+
49+
```sh
50+
export JAVA_HOME=/opt/jdk
51+
export M2_HOME=/opt/mvn
52+
export MAVEN_HOME=/opt/mvn
53+
export PATH=${M2_HOME}/bin:${PATH}
54+
```
55+
56+
随后可将国内的华为 MAVEN 代码仓库,设置为MAVEN的默认代码仓库。运行如下命令:
57+
58+
```bash
59+
$if [ -d $HOME"/.m2" ]; then :; else echo "~/.abc not exist. Now create"; mkdir $HOME"/.m2"; fi
60+
$wget -qO ~/.m2/settings.xml https://mirrors.huaweicloud.com/api/v1/configurations/maven?
61+
```
62+
63+
- 安装NVM
64+
- 配置 `~/.vimrc`
65+
66+
## 1. 关于文件/目录结构
67+
68+
在编写 Java 程序时,使用 Maven 构建,必须以这样的 `src/main/java/com/xfoss/learningJava/*.java` 的文件/目录结构,否则会报错:
69+
70+
```bash
71+
peng@uDesktop:~/eclipse-workspace/learningJava$ java -jar target/com.xfoss.learningJava-0.0.1.jar
72+
Error: Could not find or load main class com.xfoss.learningJava.PhraseOMatic
73+
Caused by: java.lang.ClassNotFoundException: com.xfoss.learningJava.PhraseOMatic
74+
```
75+
76+
> 同时,`packege com.xfoss.com.learningJava;` 对应的包 `com.xfoss.learningJava` 必须以这个名字命名,这也是上面目录中 `/com/xfoss/learningJava` 的来源。
77+
78+
## 2. 使用 `exec-maven-plugin`
79+
80+
使用这个插件,可以开启 `mvn exec:java` 命令,实时运行(正在)编写的 Java 程序。该插件支持两种运行模式,一种是在 Maven 所在线程里运行(需要修改 MAVEN 运行参数 `export MAVEN_OPTS=-Xmx1024m`,以增加JVM虚拟机的运行内存);另一种以独立线程运行(尚需测试)。
81+
82+
## 3. `build.gradle.kts` 文件中的 kotlin dsl 语法
83+
84+
Kotlin DSL, 领域特定语言,Domain Specific Language
85+
86+
> 参考: [Kotlin 之美 -- DSL 篇](https://juejin.cn/post/6844903569372479501)
87+
88+
{{#include ./SUMMARY.md:5:}}

src/SUMMARY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
[轻松学Java(Head First Java)](../README.md)
1+
[轻松学Java(Head First Java)](README.md)
22

33
---
44

0 commit comments

Comments
 (0)