Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

重写 Java 部分 #334

Merged
merged 14 commits into from
Jan 1, 2025
18 changes: 18 additions & 0 deletions docs/preparation/java/FAQ.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
title: FAQ
sidebar_position: 4
---

# FAQ

## 为什么 .jar 文件的图标是个白纸

1. 服务器根本没有安装 JRE 或者 JDK。
2. 服务器上的 Java 未设置环境变量 (其实这个影响不大)。
3. 没有绑定文件打开方式 (不过其实也没啥必要绑)。

## 怎么制作绿色版 Java & 绿色版怎么使用

下载 Java 时下载 `.zip` 或 `.tar.gz` 结尾的压缩包,将压缩包解压到任意位置。

随后可以修改环境变量 `JAVA_HOME` 即可,如果不懂看 [这篇文章](https://blog.csdn.net/MrsHorse/article/details/82695353)
Binary file added docs/preparation/java/_images/environment-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/preparation/java/_images/environment-2.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/preparation/java/_images/environment-3.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/preparation/java/_images/environment-4.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/preparation/java/_images/environment-no.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added docs/preparation/java/_images/path-1.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Original file line number Diff line number Diff line change
@@ -1,30 +1,10 @@
---
title: 选择、下载和安装 Java
sidebar_position: 1
sidebar_position: 2
---

# 选择、下载和安装 Java

你的服务端和客户端都需要安装 Java 才能运行。各个游戏版本需要安装的 Java 版本不同。

原则上选择最新的兼容的 Java 版本,可以体验到最新的优化,并且大部分现代插件对最新版的特性有优化(比如 AuthMeReReload)。

<details>
<summary>JRE 和 JDK 是什么? 我该怎么选择?</summary>

JRE (Java Runtime Enviroment) 是 Java 的运行环境。面向 Java 程序的使用者,而不是开发者。如果你仅下载并安装了 JRE,那么你的系统只能运行 Java 程序。
JRE 是运行 Java 程序所必须环境的集合,包含 JVM 标准实现及 Java 核心类库。它包括 Java 虚拟机、Java 平台核心类和支持文件。它不包含开发工具(编译器、调试器等)

JDK (Java Development Kit) 又称 J2SDK (Java2 Software Development Kit),是 Java 开发工具包,它提供了 Java 的开发环境
(提供了编译器 javac 等工具,用于将 java 文件编译为 class 文件)
和运行环境 (提供了 JVM 和 Runtime 辅助包,用于解析 class 文件使其得到运行)。
如果你下载并安装了 JDK,那么你不仅可以开发 Java 程序,也同时拥有了运行 Java 程序的平台。JDK 是整个 Java 的核心,包括了 Java 运行环境 (JRE),一堆 Java 工具 tools.jar 和
Java 标准类库 (rt.jar)

总结: 只开服务端下载 JRE 即可,JDK 也没问题

</details>

## 选择版本

:::warning
Expand Down Expand Up @@ -165,20 +145,6 @@ java -version

</details>

## FAQ

### 为什么 .jar 文件的图标是个白纸

1. 服务器根本没有安装 JRE 或者 JDK。
2. 服务器上的 Java 未设置环境变量 (其实这个影响不大)。
3. 没有绑定文件打开方式 (不过其实也没啥必要绑)。

### 怎么制作绿色版 Java & 绿色版怎么使用

下载 Java 时下载 `.zip` 或 `.tar.gz` 结尾的压缩包,将压缩包解压到任意位置。

随后可以修改环境变量 `JAVA_HOME` 即可,如果不懂看[这篇文章](https://blog.csdn.net/MrsHorse/article/details/82695353)

## 本节视频教程

[**点此前往B站**: 笨蛋级MC开服教程-第三集P1:实机演示安装JAVA](https://www.bilibili.com/video/BV1eT42167iZ/)
116 changes: 116 additions & 0 deletions docs/preparation/java/environment.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,116 @@
---
title: 环境变量
sidebar_position: 3
---

# 环境变量

环境变量用于记住程序路径,方便在命令行界面的任意目录启动程序。

例如:

![](./_images/environment-1.png)

在此处,`java` 等同于 `"C:\Program Files\Zulu\zulu-21\bin\java.exe"`

当你使用安装包安装 Java 时,通常会自动配置环境变量

如果不是使用安装包安装,即没有配置环境变量,你应该会遇到这个情况:

![](./_images/environment-no.png)

## 编辑环境变量

打开环境变量面板:

import Tabs from '@theme/Tabs';
import TabItem from '@theme/TabItem';

<Tabs queryString="environment">
<TabItem value="11" label="Windows 11">

右键点击 “**此电脑**”,点击 “**设置**”。

![](./_images/environment-11-1.png)

在 “**系统**” 点击 “**高级系统设置**”,在弹出的窗口中点击 “**环境变量**”。

![](./_images/environment-11-2.png)

</TabItem>
<TabItem value="10" label="Windows 10">

TODO

</TabItem>
<TabItem value="server" label="Windows Server">

TODO

</TabItem>
</Tabs>

在这个名为 “**环境变量**” 的界面中,我们可以看到,环境变量有 “**用户变量**” 和 “**系统变量**” 之分(红色箭头)。

- 用户变量:仅对此用户有效。
- 系统变量:此电脑的所有用户均可使用。

我们现在编辑系统变量(绿色见箭头)。

先鼠标左键选中 “**Path**”,接着点击 “**编辑**”,会弹出一个名为 “**编辑环境变量**” 的界面。

![](./_images/environment-2.png)

## 新增环境变量

首先,找到你的 Java 路径,我的是 `C:\Program Files\Zulu\zulu-21\bin`。

:::tip

你的路径应是包含 “**java.exe**” 文件的文件夹,此处为 “**bin**” 文件夹。

:::

点击 “**新建**”,在 2 处输入你的 Java 路径,接着回车,可以看到像 3 一样写入了。

![](./_images/environment-new-1.png)

接着 **重新打开** 一个终端。

:::warning

注意,这里一定要重新打开一个终端来刷新环境变量。

:::

重新打印 Java 版本。

![](./_images/environment-new-2.png)

## 优先级

可以看到,在名为 “**编辑环境变量**” 的界面中,我安装包安装的两个 Java(zulu 8 和 zulu 21)都有环境变量(红框部分)。

选中 zulu 8 并 点击 “**上移**”。(绿色箭头)

接着点击下方 “**确定**” 关闭 “**编辑环境变量**” 界面,接着点击 “**环境变量**” 面板的 “**确定**”。

是的,你要关闭这两个界面才行。

![](./_images/environment-3.png)

接着 **重新打开** 一个终端。

:::warning

注意,这里一定要重新打开一个终端来刷新环境变量。

:::

重新打印 Java 版本。

![](./_images/environment-4.png)

于是我们可以得到结论:

对于同样配置环境变量的两个目录,会优先使用最顶部的一个。
33 changes: 33 additions & 0 deletions docs/preparation/java/java.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
---
title: Java 相关
slug: /java
sidebar_position: 1
---

# Java 相关

你的服务端和客户端都需要安装 Java 才能运行。各个游戏版本需要安装的 Java 版本不同。

原则上选择最新的兼容的 Java 版本,可以体验到最新的优化,并且大部分现代插件对最新版的特性有优化(比如 AuthMeReReload)。

<details>
<summary>JRE 和 JDK 是什么? 我该怎么选择?</summary>

JRE (Java Runtime Enviroment) 是 Java 的运行环境。面向 Java 程序的使用者,而不是开发者。如果你仅下载并安装了 JRE,那么你的系统只能运行 Java 程序。
JRE 是运行 Java 程序所必须环境的集合,包含 JVM 标准实现及 Java 核心类库。它包括 Java 虚拟机、Java 平台核心类和支持文件。它不包含开发工具(编译器、调试器等)

JDK (Java Development Kit) 又称 J2SDK (Java2 Software Development Kit),是 Java 开发工具包,它提供了 Java 的开发环境
(提供了编译器 javac 等工具,用于将 java 文件编译为 class 文件)
和运行环境 (提供了 JVM 和 Runtime 辅助包,用于解析 class 文件使其得到运行)。
如果你下载并安装了 JDK,那么你不仅可以开发 Java 程序,也同时拥有了运行 Java 程序的平台。JDK 是整个 Java 的核心,包括了 Java 运行环境 (JRE),一堆 Java 工具 tools.jar 和
Java 标准类库 (rt.jar)

总结: 只开服务端下载 JRE 即可,JDK 也没问题

对于初学者,只需要阅读 [选择、下载和安装 Java](./choose-and-download-and-install-java.md) 部分,其余为扩展知识。

</details>

import DocCardList from '@theme/DocCardList';

<DocCardList />
58 changes: 58 additions & 0 deletions docs/preparation/java/path.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
---
title: 路径相关
sidebar_position: 4
---

# 路径相关

- 绝对路径 - 是从盘符开始的路径.

形如 `C:\windows\system32\cmd.exe`

- 相对路径 - 是从当前路径开始的路径。

要描述上述路径,只需输入 `system32\cmd.exe`。

实际上,严格的相对路径写法应为 `.\system32\cmd.exe`。

其中,.表示当前路径,在通道情况下可以省略,只有在特殊的情况下不能省略。

## 绝对路径

例如,当你机器上安装了多个 Java(假设为 zulu 8 和 zulu 21)。

你想在启动 服务器A 时使用 zulu 8,启动 服务器B 时使用 zulu 21。

那么最简单直接的办法就是 `"Java路径" -jar server.jar`。

比如:

```bash
"C:\Program Files\Zulu\zulu-8\bin\java.exe" -jar server.jar
```

```bash
"C:\Program Files\Zulu\zulu-21\bin\java.exe" -jar server.jar
```

## 相对路径

> 也许,使用你制作的服务端的用户才思敏捷,不能独立解决 “怎么说找不到java” 等宇宙终极问题。

相对路径是从当前路径开始的路径。

![](_images/path-1.png)

如图所示,将 “**zulu-21**” 放进服务端文件夹,接着在启动脚本写入:

```bash
.\zulu-21\bin\java.exe -jar server.jar
```

就会使用这个目录下 zulu-21。这样就将 Java “打包” 进服务端了。

其中,.表示当前路径,在通道情况下可以省略,只有在特殊的情况下不能省略。

另外,可以用 ".." 表示当前所处的文件夹上一级文件夹的绝对路径。

但是我很少见到在 Minecraft 服务器的启动脚本中使用它,有需要可以自行研究。
Loading