1.安装
直接到官网上下载所需要的版本Nacos Server 下载 | Nacos 官网
解压到不含中文和空格的路径,例如 `D:\tools\nacos`
启动:不要双击 `startup.cmd`。它默认走集群模式,会直接报错。请在命令行执行:
bash
cd /d D:\tools\nacos\bin
.\startup.cmd -m standalone
看到 `Nacos started successfully in stand alone mode` 即成功。这个窗口不能关
2.异常
【要求输入密钥值】
如果提示要求输入密钥值(从 Nacos 2.2.0.1 版本开始,官方为了安全,移除了默认密钥,要求你必须自己生成一个填进去,否则无法启动):
bash
nacos.core.auth.plugin.nacos.token.secret.key value is empty, please input:
解决:
你需要自己创建一个满足以下条件的字符串:
- 推荐格式:Base64 编码后的字符串。
- 长度要求:原始密钥长度不得低于 32 字符。
生成方法(任选一种):
- Linux/Mac 终端:
bash
openssl rand -base64 32
(这会直接生成一个符合要求的随机 Base64 字符串,复制结果即可)
- Windows PowerShell:
bash
[System.Convert]::ToBase64String((1..32 | ForEach-Object { Get-Random -Maximum 256 }))
- 临时测试(不推荐生产用):
如果你只是本地测试,可以直接用官方文档里那个公开的测试密钥:
bash
SecretKey012345678901234567890123456789012345678901234567890123456789
注意:这个值是公开的,有安全风险,正式环境务必换成自己生成的。
生成好密钥后,有两种填法:
- 方法一:直接响应提示(最快)
在你运行 startup.cmd 的那个黑窗口里,直接粘贴你生成的密钥,然后按回车。启动脚本会自动把它写入配置并启动。
- 方法二:手动改配置文件
-
打开 Nacos 安装目录下的 conf/application.properties 文件。
-
找到或添加这一行:
bash
nacos.core.auth.plugin.nacos.token.secret.key=你生成的Base64字符串
保存后重新启动 Nacos。
补充提醒
如果你是集群部署,所有节点的这个密钥值必须完全一致,否则节点间通信会报 403 错误
【版本不匹配】
bash
"nacos is starting with standalone"
Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/springframework/boot/loader/launch/PropertiesLauncher has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:495)
请按任意键继续. . .
直接改 Nacos 启动脚本(一劳永逸)
如果你希望每次启动这个 Nacos 都固定用 JDK 17,可以直接在 startup.cmd 里写死路径。
-
用记事本打开 Nacos 安装目录下
bin\startup.cmd。 -
在文件开头(
@echo off之后)加上一行:cmd
set JAVA_HOME=C:\Program Files\Java\jdk-17(把路径换成你 JDK 17 的实际安装位置)
-
保存后正常双击或运行
startup.cmd -m standalone即可。