网站中的游戏是怎么做的,个人免费网上注册公司,外包是做什么的,哈尔滨设计优化公司一、反向代理
1.前端服务器配置
前端服务器#xff1a;用于接收和响应客户端#xff0c;代理另一台主机
Nginx 安装
(1).下载安装nginx
[rootweb ~]# wget https://nginx.org/download/nginx-1.26.1.tar.gz
(2).解压
[rootweb ~ ]# tar -zxvf nginx-1.26.1.tar.gz
(3…一、反向代理
1.前端服务器配置
前端服务器用于接收和响应客户端代理另一台主机
Nginx 安装
(1).下载安装nginx
[rootweb ~]# wget https://nginx.org/download/nginx-1.26.1.tar.gz
(2).解压
[rootweb ~ ]# tar -zxvf nginx-1.26.1.tar.gz
(3).编译安装 nginx
1安装 pcre
⾸先安装 pcre。此软件是为了⽀持 rewrite重写、复写功能⽽存在的。rewrite 是实现 url 重定向的重要命令它会根据正则表达式来匹配内容从⽽跳转到⽬标上⾯去。
[rootweb ~]# yum -y install pcre-devel
2安装 OpenSSL
当没有使⽤ ssl 证书对服务器数据进⾏加密认证时⽤户的数据将会以明⽂的形式进⾏传输⽽此时⽤户的数据可以被⼀些抓包⼯具获取就容易造成⽤户的信息泄露。
所以为了改善这种情况作为运维⼈员需要去为⽹站配置 ssl 证书实现 https 协议的访问
[rootweb ~]# yum -y install openssl-devel
3在安装之前还要安装⽤来编译的⼯具
gcc、gcc-c、makelrzsz 是⽤来从 Windows 上直接将⽂件导⼊到 Linux 内的⼯具。
[rootweb ~]# yum -y install gcc gcc-c make
4编译安装 nginx
如果之前在系统上有 yum 安装的 nginx那么在编译安装之前 需要先卸载掉原来的 nginx。
卸载nginx:yum -y remove nginx
5进行编译
[rootweb ~]# ls nginx-1.26.1 nginx-1.26.1.tar.gz cd到安装包⽬录下
[rootweb ~]# cd nginx-1.26.1/
[rootweb nginx-1.26.1]# ./configure --prefix/usr/local/nginx --usernginx --groupnginx --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-stream
命令分步解释 [rootweb nginx-1.26.1]# make make install
[rootweb nginx-1.26.1]# useradd -s /bin/nologin -M nginx
6检查目录
[rootweb nginx-1.26.1]# tree /usr/local/nginx
[rootweb nginx-1.26.1]# cd /usr/local/nginx/
[rootweb nginx]# ls
conf html logs sbin
7备份目录
[rootweb nginx]# cp -r conf/ conf.bak
[rootweb nginx]# ./sbin/nginx
8开放端口或者服务
[rootweb nginx]# firewall-cmd --zonepublic --add-port80/tcp --permanent success [rootweb nginx]# firewall-cmd --reload success
[rootweb nginx]# vim /usr/local/nginx/conf/nginx.conf
9创建符号链接软链接
[rootweb nginx]# ln -s /usr/local/nginx/sbin/nginx /usr/bin/
[rootweb nginx]# ls -l
/usr/bin/nginxlrwxrwxrwx. 1 root root 27 7月 29 16:16 /usr/bin/nginx - /usr/local/nginx/sbin/nginx
[rootweb nginx]# nginx
[rootweb nginx]# nginx -s stop
[rootweb nginx]# netstat -lnput|grep nginx
[rootweb nginx]# nginx
[rootweb nginx]# netstat -lnput|grep nginx
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 17228/nginx: master
10启动和关闭nginx服务
./nginx ./nginx -s reload
修改了配置文件后重载nginx服务网
./nginx -s reload
11脚本启动nginx服务
[rootweb nginx]# vim ~/nginx.sh [rootweb nginx]# bash ~/nginx.sh
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 17228/nginx: master
nginx正在执行或者是80端口被占用
[rootweb nginx]# nginx -s stop
[rootweb nginx]# bash ~/nginx.sh
12以systemctl控制nginx
[rootweb nginx]# vim /usr/lib/systemd/system/nginx.service 如果直接使用sbin目录下的nginx就无法使用systemctl
这两套命令只能用一套
1[rootweb nginx]# systemctl daemon-reload
[rootweb nginx]# systemctl stop nginx
2[rootweb nginx]# nginx -s reload [rootweb nginx]# nginx -s stop
13添加监控块
[rootweb nginx]# vim /usr/local/nginx/conf/nginx.conf [rootweb nginx]# systemctl restart nginx 2.后端服务器
[rootweb ~]# wget https://nginx.org/download/nginx-1.26.1.tar.gz
[rootweb ~ ]# tar -zxvf nginx-1.26.1.tar.gz
[rootweb ~]# yum -y install gcc gcc-c
[rootweb ~]# yum -y install openssl-devel pcre-devel make
[rootweb ~]# lsnginx-1.26.1 nginx-1.26.1.tar.gz
[rootweb ~]# cd nginx-1.26.1/
[rootweb nginx-1.26.1]# ./configure --prefix/usr/local/nginx --usernginx --groupnginx --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-stream
[rootweb nginx-1.26.1]# make make install
[rootweb nginx-1.26.1]# useradd -s /bin/nologin -M nginx
[rootnginx nginx-1.26.1]# echo 我是后端服务 /usr/local/nginx/html/index.html
[rootnginx nginx-1.26.1]# firewall-cmd --zonepublic --add-port80/tcp --permanent
success [rootnginx nginx-1.26.1]# firewall-cmd --reload
success
修改配置文件
[rootnginx nginx-1.26.1]# vim /usr/local/nginx/conf/nginx.conf 将其修改为utf-8防止出现乱码
[rootnginx nginx-1.26.1]# /usr/local/nginx/sbin/nginx
[rootnginx nginx-1.26.1]# /usr/local/nginx/sbin/nginx -s reload
浏览器访问192.168.2.27 [rootnginx ~]# echo this is java web server /usr/local/nginx/html/index.html
[rootnginx ~]# #启动nginx
[rootnginx ~]# /usr/local/nginx/sbin/nginx
[rootnginx ~]# #使用curl访问当前项目
[rootnginx ~]# curl localhost
this is java web server
3.前端服务器配置
[rootweb ~]# echo this is static server /usr/local/nginx/html/index.html
[rootweb ~]# #启动nginx服务
[rootweb ~]# /usr/local/nginx/sbin/nginx
[rootweb ~]# ps -aux|grep nginx
[rootweb ~]# curl localhost
this is static server
[rootweb ~]# curl 192.168.2.25
this is static server
使用25代理27主机当用户访问25的时候25不响应27主机响应
使用25主机nginx反向代理27的服务器
[rootweb ~]# #location proxy_pass 协议 域名 端口
修改配置文件 /usr/local/nginx/conf/nginx.conf
[rootweb ~]# vim /usr/local/nginx/conf/nginx.conf [rootweb ~]# /usr/local/nginx/sbin/nginx -s reload
浏览器访问IP192168.2.25访问到的内容是后端服务器的 现在的静态服务器实际上是代理服务器nginx代理其他服务的时候不需要对方同意
二、设置黑名单、白名单
1.安装配置nginx环境
2.修改一下index.html中的内容
[rootnginx-1 nginx-1.26.1]# echo you are luckly /usr/local/nginx/html/index.html [rootnginx-1 nginx-1.26.1]# curl localhost
you are luckly
3.修改配置文件 此台服务器IP:192.168.2.28
前端服务器IP:192.168.2.25
后端服务器IP:192.1682.27
设置除开27后端服务器可以访问其他主机都不可以访问 在配置文件中的server模块中设置allow为允许deny为禁止可以对IP生效也可以对网段生效
[rootnginx-1 nginx-1.26.1]# vim /usr/local/nginx/conf/nginx.conf 4.重启服务
[rootnginx-1 nginx-1.26.1]# /usr/local/nginx/sbin/nginx -s reload
5.测试
分别在前端服务器25、后端服务器27进行测试
前端服务器25
[rootweb ~]# curl 192.168.2.28
html
headtitle403 Forbidden/title/head
body
centerh1403 Forbidden/h1/center
hrcenternginx/1.26.1/center
/body
/html
后端服务器27
[rootnginx ~]# curl 192.168.2.28
you are luckly
6.说明
[rootweb ~]# curl 192.168.2.28
curl: (7) Failed connect to 192.168.2.28:80; 没有到主机的路由如果出现这种情况查看是否能ping通外网是否能ping通192.168.2.28这台主机最后检查防火墙有没有关
三、负载均衡
1.负载均衡状态 2.环境准备
让每一台主机能够获得相应的压力
轮询依次的将任务部署给不同的主机
1.准备四台机器:
编号主机名IP地址1static-server192.168.2.252001192.168.2.273002192.168.2.284003192.168.2.29
2.都配置nginx环境
wget https://nginx.org/download/nginx-1.26.1.tar.gz
tar -zxvf nginx-1.26.1.tar.gz yum -y install pcre-devel
yum -y install openssl-devel yum -y install gcc gcc-c make
cd nginx-1.26.1/
./configure --prefix/usr/local/nginx --usernginx --groupnginx --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-stream
make make install
useradd -s /bin/nologin -M nginx
3.写测试页面
[rootstatic-server ~]# echo I am static server /usr/local/nginx/html/index.html
[root001 ~]# echo I am 001 server /usr/local/nginx/html/index.html
[root002 ~]# echo I am 002 server /usr/local/nginx/html/index.html
[root003 ~]# echo I am 003 server /usr/local/nginx/html/index.html
4.启动服务(static-server、001、002、003)
/usr/local/nginx/sbin/nginx
3.负载均衡策略 1配置代理和轮询
[rootstatic-server ~]# vim /usr/local/nginx/conf/nginx.conf
轮询
代理 [rootstatic-server ~]# /usr/local/nginx/sbin/nginx -s reload
浏览器访问static-server的IP:192.168.2.25
static-server会代理001、002、003这三台机器刷新浏览器会出现轮询 2weight加权
权重默认为1谁权重大谁优先处理请求
[rootstatic-server ~]# vim /usr/local/nginx/conf/nginx.conf [rootstatic-server ~]# /usr/local/nginx/sbin/nginx -s reload
浏览器访问IP:192.168.2.25
001出现的次数最多003出现的次数最少
3ip_hash
当对后端的多台动态应用服务器做负载均衡时ip_hash指令能够将某个客户端IP的请求通过哈希算法定位到同一台后端服务器上。
这样当来自某一个IP的用户在后端Web服务器A上登录后再访问该站点的其他URL能保证其访问的还是后端web服务器A。
注意: 使用ip_hash指令无法保证后端服务器的负载均衡可能导致有些后端服务器接收到的请求多有些后端服务器接受的请求少而且设置后端服务器权重等方法将不起作用
[rootstatic-server ~]# vim /usr/local/nginx/conf/nginx.conf [rootstatic-server ~]# /usr/local/nginx/sbin/nginx -s reload
浏览器访问IP:192.168.2.25
第一次访问到001的测试页面之后刷新浏览器一直是001的测试页面不会变。 4least_conn
least_conn最少连接把请求转发给连接数较少的后端服务器。轮询算法是把请求平均地转发给各个后端使它们的负载大致相同但是有些请求占用的时间很长会导致其所在的后端负载较高。这种情况下leastconn这种方式就可以达到更好的负载均衡效果。 5url_hash
按访问url的hash结果来分配请求使每个url定向到同一个后端服务器要配合缓存命中来使用。同一个资源多次请求可能会到达不同的服务器上导致不必要的多次下载缓存命中率不高以及一些资源时间的浪费。而使用ur_hash可以使得同一个url (也就是同一个资源请求)会到达同一台服务器一旦缓存住了资源再次收到请求,就可以从 缓存中读取。 四、平滑升级
不停用业务使用平滑升级
需要有kill命令的支持
kill不仅仅用于杀死进程还可以向软件进程发送信号
常用的-9和-15一个是强杀一个是正常杀
格式kill 信号 进程信号
-USR2 平滑启动一个进程平滑升级
-WINCH 优雅关闭子进程
-QUIT 优雅关闭主进程
步骤
1.不停止原有服务但是必须使用原生方式启动或者更改nginx脚本(会创建一个新的进程)
2.重新编译nginx新版本
3.使用kill -USR启动新版本
4.把旧的nginx子进程全部退出
5.优雅的退出nginx的老进程系统里就只剩下新的nginx了
实施步骤
1.查看nginx当前版本
#查看nginx当版本[rootstatic-server ~]# /usr/local/nginx/sbin/nginx -vnginx version: nginx/1.26.1
2.上传新的新nginx版本并解压
平滑升级到1.27
服务持续期间对nginx进行升级
# 上传新的新nginx版本并解压1.27版本[rootstatic-server ~]# wget https://nginx.org/download/nginx-1.27.0.tar.gz[rootstatic-server ~]#tar -zxvf nginx-1.27.0.tar.gz
3.对新版本进行编译安装安装目录必须和旧版本一致
# 对新版本进行编译安装安装目录必须和旧版本一致[rootstatic-server ~]#cd nginx-1.27.0/[rootstatic-server ~]# ./configure --prefix/usr/local/nginx --usernginx --groupnginx --with-http_ssl_module --with-http_stub_status_module --with-http_realip_module --with-stream[rootstatic-server ~]#make make install
4.对新版本进行编译安装安装目录必须和旧版本一致
# 重装新的版本以后会出现新的启动工具[rootstatic-server nginx-1.27.0]# ls /usr/local/nginx/sbinnginx nginx.old
5.查看nginx的新旧版本
#查看nginx的新旧版本
[rootstatic-server nginx-1.27.0]# /usr/local/nginx/sbin/nginx -vnginx version: nginx/1.27.0[rootstatic-server nginx-1.27.0]#/usr/local/nginx/sbin/nginx.old -vnginx version: nginx/1.26.1
6.查看进程
[rootstatic-server nginx-1.27.0]# ps -aux|grep nginx
# 升级过程中保持服务不中断[rootstatic-server nginx-1.27.0]# ps -aux|grep nginx
root 4432 0.0 0.2 46172 2036 ? Ss 10:17 0:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx 4762 0.0 0.2 46600 2176 ? S 16:09 0:00 nginx: worker process
root 7749 0.0 0.0 112808 680 pts/1 R 16:34 0:00 grep --colorauto nginx
7.使用老的nginx进程创建新的进程
# 使用老的nginx进程创建新的进程# 格式kill -USR2 老版本的pid编号[rootstatic-server nginx-1.27.0]# kill -USR2 4432
[rootstatic-server nginx-1.27.0]# ps -aux|grep nginx
root 4432 0.0 0.2 46172 2036 ? Ss 10:17 0:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx 4762 0.0 0.2 46600 2176 ? S 16:09 0:00 nginx: worker process
root 7751 0.0 0.3 46128 3344 ? S 16:37 0:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx 7752 0.0 0.1 46584 1912 ? S 16:37 0:00 nginx: worker process
root 7754 0.0 0.0 112824 980 pts/1 R 16:37 0:00 grep --colorauto nginx
[rootstatic-server nginx-1.27.0]# ps -aux|grep nginx
root 4432 0.0 0.2 46172 2036 ? Ss 10:17 0:00 nginx: master p
nginx 4762 0.0 0.2 46600 2176 ? S 16:09 0:00 nginx: worker p
root 7751 0.0 0.3 46128 3344 ? S 16:37 0:00 nginx: master p
nginx 7752 0.0 0.1 46584 1912 ? S 16:37 0:00 nginx: worker p
root 7756 0.0 0.0 112824 980 pts/1 R 16:39 0:00 grep --colorau
8.关闭老版本的所有子进程和老版本的主进程 # 此时会出现两套master进程这个时候处理客户请求的就是新nginx服务了# 关闭老版本的所有子进程# 关闭老版本的主进程[rootstatic-server nginx-1.27.0]# kill -WINCH 4762
[rootstatic-server nginx-1.27.0]# ps -aux|grep nginx
root 4432 0.0 0.2 46172 2036 ? Ss 10:17 0:00 nginx: master process /usr/local/nginx/sbin/nginx
root 7751 0.0 0.3 46128 3344 ? S 16:37 0:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx 7752 0.0 0.1 46584 1912 ? S 16:37 0:00 nginx: worker process
nginx 7758 0.0 0.1 46600 1928 ? S 16:40 0:00 nginx: worker process
root 7760 0.0 0.0 112824 976 pts/1 R 16:40 0:00 grep --colorauto nginx
[rootstatic-server nginx-1.27.0]# kill -QUIT 4432
[rootstatic-server nginx-1.27.0]# ps -aux|grep nginx
root 7751 0.0 0.3 46128 3344 ? S 16:37 0:00 nginx: master process /usr/local/nginx/sbin/nginx
nginx 7752 0.0 0.1 46584 1912 ? S 16:37 0:00 nginx: worker process
root 7762 0.0 0.0 112808 680 pts/1 R 16:41 0:00 grep --colorauto nginx
9.使用curl查看当前服务器的版本
# 使用curl查看当前服务器的版本[rootstatic-server nginx-1.27.0]# curl -I localhost
HTTP/1.1 200 OK
Server: nginx/1.27.0
Date: Tue, 30 Jul 2024 08:42:08 GMT
Content-Type: text/html; charsetutf-8
Content-Length: 16
Connection: keep-alive
Last-Modified: Tue, 30 Jul 2024 07:02:18 GMT
ETag: 66a88ffa-10
Accept-Ranges: bytes
五、配置jdk环境
配置tomcat 10运行环境 tomcat9 可以在jdk8的环境运行
tomcat10必须在jdk17以上的版本运行
tomcat-22版本下载网址https://download.oracle.com/java/22/latest/jdk-22_linux-x64_bin.tar.gz
步骤:
#下载jdk包
[rootstatic-server ~]# wget https://download.oracle.com/java/22/latest/jdk-22_linux-x64_bin.tar.gz
--2024-07-30 17:28:10-- https://download.oracle.com/java/22/latest/jdk-22_linux-x64_bin.tar.gz
正在解析主机 download.oracle.com (download.oracle.com)... 184.28.252.147
正在连接 download.oracle.com (download.oracle.com)|184.28.252.147|:443... 已连接。
已发出 HTTP 请求正在等待回应... 200 OK
长度195275103 (186M) [application/x-gzip]
正在保存至: “jdk-22_linux-x64_bin.tar.gz”100%[] 195,275,103 1.28MB/s 用时 5m 43s 2024-07-30 17:33:57 (556 KB/s) - 已保存 “jdk-22_linux-x64_bin.tar.gz” [195275103/195275103])[rootstatic-server ~]# ls
anaconda-ks.cfg nginx-1.26.1 nginx-1.27.0 nginx.sh
jdk-22_linux-x64_bin.tar.gz nginx-1.26.1.tar.gz nginx-1.27.0.tar.gz#解压jdk压缩包
[rootstatic-server ~]# tar -xf jdk-22_linux-x64_bin.tar.gz
[rootstatic-server ~]# ls
anaconda-ks.cfg nginx-1.26.1 nginx-1.27.0.tar.gz
jdk-22.0.2 nginx-1.26.1.tar.gz nginx.sh
jdk-22_linux-x64_bin.tar.gz nginx-1.27.0#进入到jdk-22.0.2/目录下
[rootstatic-server ~]# cd jdk-22.0.2/
[rootstatic-server jdk-22.0.2]# ls
bin conf include jmods legal lib LICENSE man README release#进入到bin目录下看是否能运行java
[rootstatic-server jdk-22.0.2]# cd bin
[rootstatic-server bin]# ./java
用法java [options] mainclass [args...]执行类或 java [options] -jar jarfile [args...]执行 jar 文件或 java [options] -m module[/mainclass] [args...]java [options] --module module[/mainclass] [args...]执行模块中的主类或 java [options] sourcefile [args]执行源文件程序将主类、源文件、-jar jarfile、-m 或--module module/mainclass 后的参数作为参数传递到主类。其中选项包括-cp 目录和 zip/jar 文件的类搜索路径-classpath 目录和 zip/jar 文件的类搜索路径--class-path 目录和 zip/jar 文件的类搜索路径使用 : 分隔的, 用于搜索类文件的目录, JAR 档案和 ZIP 档案列表。-p 模块路径--module-path 模块路径...: 分隔的元素列表每个元素都是模块或包含模块的目录的文件路径。每个模块都是模块化 JAR 或展开的模块目录。--upgrade-module-path 模块路径...: 分隔的元素列表每个元素都是模块或包含模块用于替换运行时映像中的可升级模块的目录的文件路径。每个模块都是模块化 JAR 或展开的模块目录。--add-modules 模块名称[,模块名称...]除了初始模块之外要解析的根模块。模块名称 还可以为 ALL-DEFAULT, ALL-SYSTEM,ALL-MODULE-PATH.--enable-native-access module name[,module name...]允许模块中的代码访问 Java 运行时之外的代码和数据。module name 也可以是 ALL-UNNAMED以指示类路径上的代码。--list-modules列出可观察模块并退出-d module name--describe-module 模块名称描述模块并退出--dry-run 创建 VM 并加载主类, 但不执行 main 方法。此 --dry-run 选项对于验证诸如模块系统配置这样的命令行选项可能非常有用。--validate-modules验证所有模块并退出--validate-modules 选项对于查找模块路径中模块的冲突及其他错误可能非常有用。-D名称值设置系统属性-verbose:[class|module|gc|jni]为给定子系统启用详细输出-version 将产品版本输出到错误流并退出--version 将产品版本输出到输出流并退出-showversion 将产品版本输出到错误流并继续--show-version将产品版本输出到输出流并继续--show-module-resolution在启动过程中显示模块解析输出-? -h -help将此帮助消息输出到错误流--help 将此帮助消息输出到输出流-X 将额外选项的帮助输出到错误流--help-extra 将额外选项的帮助输出到输出流-ea[:程序包名称...|:类名]-enableassertions[:程序包名称...|:类名]按指定的粒度启用断言-da[:程序包名称...|:类名]-disableassertions[:程序包名称...|:类名]按指定的粒度禁用断言-esa | -enablesystemassertions启用系统断言-dsa | -disablesystemassertions禁用系统断言-agentlib:库名[选项]加载本机代理库 库名, 例如 -agentlib:jdwp另请参阅 -agentlib:jdwphelp-agentpath:路径名[选项]按完整路径名加载本机代理库-javaagent:jar 路径[选项]加载 Java 编程语言代理, 请参阅 java.lang.instrument-splash:图像路径使用指定的图像显示启动屏幕自动支持和使用 HiDPI 缩放图像(如果可用)。应始终将未缩放的图像文件名 (例如, image.ext)作为参数传递给 -splash 选项。将自动选取提供的最合适的缩放图像。有关详细信息, 请参阅 SplashScreen API 文档argument 文件一个或多个包含选项的参数文件--disable-files阻止进一步扩展参数文件--enable-preview允许类依赖于此发行版的预览功能
要为长选项指定参数, 可以使用 --名称值 或
--名称 值。#对文件进行备份
[rootstatic-server bin]# cd
[rootstatic-server ~]# mv jdk-22.0.2/ /usr/local/jdk22/
[rootstatic-server ~]# ls /usr/local/jdk22/
bin include jmods lib man release
conf jdk-22.0.2 legal LICENSE README
[rootstatic-server ~]# ls
anaconda-ks.cfg nginx-1.26.1 nginx-1.27.0 nginx.sh
jdk-22_linux-x64_bin.tar.gz nginx-1.26.1.tar.gz nginx-1.27.0.tar.gz
[rootstatic-server ~]# cd /usr/local/jdk22/
[rootstatic-server jdk22]# ls
bin include jmods lib man release
conf jdk-22.0.2 legal LICENSE README
[rootstatic-server jdk22]# pwd
/usr/local/jdk22
[rootstatic-server jdk22]# sed -n $p /etc/profile
PATH$JAVA_HOME/bin:$PATH
[rootstatic-server jdk22]# sed -i $aexport JAVA_HOME/usr/local/jdk22/ /etc/profile
[rootstatic-server jdk22]# source /etc/profile
[rootstatic-server jdk22]# $JAVA_HOME
-bash: /usr/local/jdk22/: 是一个目录
[rootstatic-server jdk22]# java
-bash: java: 未找到命令
[rootstatic-server jdk22]# sed -i $aPATH$JAVA_HOME/bin:$PATH /etc/profile
[rootstatic-server jdk22]# sed -n $p /etc/profile
PATH$JAVA_HOME/bin:$PATH
[rootstatic-server jdk22]# source /etc/profile
[rootstatic-server jdk22]# java
用法java [options] mainclass [args...]执行类或 java [options] -jar jarfile [args...]执行 jar 文件或 java [options] -m module[/mainclass] [args...]java [options] --module module[/mainclass] [args...]执行模块中的主类或 java [options] sourcefile [args]执行源文件程序将主类、源文件、-jar jarfile、-m 或--module module/mainclass 后的参数作为参数传递到主类。其中选项包括-cp 目录和 zip/jar 文件的类搜索路径-classpath 目录和 zip/jar 文件的类搜索路径--class-path 目录和 zip/jar 文件的类搜索路径使用 : 分隔的, 用于搜索类文件的目录, JAR 档案和 ZIP 档案列表。-p 模块路径--module-path 模块路径...: 分隔的元素列表每个元素都是模块或包含模块的目录的文件路径。每个模块都是模块化 JAR 或展开的模块目录。--upgrade-module-path 模块路径...: 分隔的元素列表每个元素都是模块或包含模块用于替换运行时映像中的可升级模块的目录的文件路径。每个模块都是模块化 JAR 或展开的模块目录。--add-modules 模块名称[,模块名称...]除了初始模块之外要解析的根模块。模块名称 还可以为 ALL-DEFAULT, ALL-SYSTEM,ALL-MODULE-PATH.--enable-native-access module name[,module name...]允许模块中的代码访问 Java 运行时之外的代码和数据。module name 也可以是 ALL-UNNAMED以指示类路径上的代码。--list-modules列出可观察模块并退出-d module name--describe-module 模块名称描述模块并退出--dry-run 创建 VM 并加载主类, 但不执行 main 方法。此 --dry-run 选项对于验证诸如模块系统配置这样的命令行选项可能非常有用。--validate-modules验证所有模块并退出--validate-modules 选项对于查找模块路径中模块的冲突及其他错误可能非常有用。-D名称值设置系统属性-verbose:[class|module|gc|jni]为给定子系统启用详细输出-version 将产品版本输出到错误流并退出--version 将产品版本输出到输出流并退出-showversion 将产品版本输出到错误流并继续--show-version将产品版本输出到输出流并继续--show-module-resolution在启动过程中显示模块解析输出-? -h -help将此帮助消息输出到错误流--help 将此帮助消息输出到输出流-X 将额外选项的帮助输出到错误流--help-extra 将额外选项的帮助输出到输出流-ea[:程序包名称...|:类名]-enableassertions[:程序包名称...|:类名]按指定的粒度启用断言-da[:程序包名称...|:类名]-disableassertions[:程序包名称...|:类名]按指定的粒度禁用断言-esa | -enablesystemassertions启用系统断言-dsa | -disablesystemassertions禁用系统断言-agentlib:库名[选项]加载本机代理库 库名, 例如 -agentlib:jdwp另请参阅 -agentlib:jdwphelp-agentpath:路径名[选项]按完整路径名加载本机代理库-javaagent:jar 路径[选项]加载 Java 编程语言代理, 请参阅 java.lang.instrument-splash:图像路径使用指定的图像显示启动屏幕自动支持和使用 HiDPI 缩放图像(如果可用)。应始终将未缩放的图像文件名 (例如, image.ext)作为参数传递给 -splash 选项。将自动选取提供的最合适的缩放图像。有关详细信息, 请参阅 SplashScreen API 文档argument 文件一个或多个包含选项的参数文件--disable-files阻止进一步扩展参数文件--enable-preview允许类依赖于此发行版的预览功能
要为长选项指定参数, 可以使用 --名称值 或
--名称 值。#查看java版本
[rootstatic-server jdk22]# java -version
java version 22.0.2 2024-07-16
Java(TM) SE Runtime Environment (build 22.0.29-70)
Java HotSpot(TM) 64-Bit Server VM (build 22.0.29-70, mixed mode, sharing)
[rootstatic-server jdk22]# 文章转载自: http://www.morning.gwtbn.cn.gov.cn.gwtbn.cn http://www.morning.pjrql.cn.gov.cn.pjrql.cn http://www.morning.bnfjh.cn.gov.cn.bnfjh.cn http://www.morning.qnjcx.cn.gov.cn.qnjcx.cn http://www.morning.mgmqf.cn.gov.cn.mgmqf.cn http://www.morning.hgfxg.cn.gov.cn.hgfxg.cn http://www.morning.dlhxj.cn.gov.cn.dlhxj.cn http://www.morning.dfbeer.com.gov.cn.dfbeer.com http://www.morning.yqgbw.cn.gov.cn.yqgbw.cn http://www.morning.kjrlp.cn.gov.cn.kjrlp.cn http://www.morning.skksz.cn.gov.cn.skksz.cn http://www.morning.ysgnb.cn.gov.cn.ysgnb.cn http://www.morning.pzwfw.cn.gov.cn.pzwfw.cn http://www.morning.yyzgl.cn.gov.cn.yyzgl.cn http://www.morning.rgfx.cn.gov.cn.rgfx.cn http://www.morning.slwfy.cn.gov.cn.slwfy.cn http://www.morning.ltkms.cn.gov.cn.ltkms.cn http://www.morning.ptqpd.cn.gov.cn.ptqpd.cn http://www.morning.dmkhd.cn.gov.cn.dmkhd.cn http://www.morning.gskzy.cn.gov.cn.gskzy.cn http://www.morning.mbmtn.cn.gov.cn.mbmtn.cn http://www.morning.jcbmm.cn.gov.cn.jcbmm.cn http://www.morning.crxdn.cn.gov.cn.crxdn.cn http://www.morning.xfcjs.cn.gov.cn.xfcjs.cn http://www.morning.mrkbz.cn.gov.cn.mrkbz.cn http://www.morning.jgcxh.cn.gov.cn.jgcxh.cn http://www.morning.ndxrm.cn.gov.cn.ndxrm.cn http://www.morning.wjmb.cn.gov.cn.wjmb.cn http://www.morning.jfjqs.cn.gov.cn.jfjqs.cn http://www.morning.fpbj.cn.gov.cn.fpbj.cn http://www.morning.bsqkt.cn.gov.cn.bsqkt.cn http://www.morning.hffjj.cn.gov.cn.hffjj.cn http://www.morning.hcwjls.com.gov.cn.hcwjls.com http://www.morning.mhmsn.cn.gov.cn.mhmsn.cn http://www.morning.pbmg.cn.gov.cn.pbmg.cn http://www.morning.eviap.com.gov.cn.eviap.com http://www.morning.zbjfq.cn.gov.cn.zbjfq.cn http://www.morning.ybhrb.cn.gov.cn.ybhrb.cn http://www.morning.pnmnl.cn.gov.cn.pnmnl.cn http://www.morning.swbhq.cn.gov.cn.swbhq.cn http://www.morning.wcft.cn.gov.cn.wcft.cn http://www.morning.dtrcl.cn.gov.cn.dtrcl.cn http://www.morning.yodajy.cn.gov.cn.yodajy.cn http://www.morning.hffpy.cn.gov.cn.hffpy.cn http://www.morning.wbfg.cn.gov.cn.wbfg.cn http://www.morning.clgbb.cn.gov.cn.clgbb.cn http://www.morning.amlutsp.cn.gov.cn.amlutsp.cn http://www.morning.dqgbx.cn.gov.cn.dqgbx.cn http://www.morning.ypklb.cn.gov.cn.ypklb.cn http://www.morning.uytae.cn.gov.cn.uytae.cn http://www.morning.wfyzs.cn.gov.cn.wfyzs.cn http://www.morning.kdgcx.cn.gov.cn.kdgcx.cn http://www.morning.cltrx.cn.gov.cn.cltrx.cn http://www.morning.8yitong.com.gov.cn.8yitong.com http://www.morning.nfzw.cn.gov.cn.nfzw.cn http://www.morning.gyfhk.cn.gov.cn.gyfhk.cn http://www.morning.sqqds.cn.gov.cn.sqqds.cn http://www.morning.jfxth.cn.gov.cn.jfxth.cn http://www.morning.tsrg.cn.gov.cn.tsrg.cn http://www.morning.zcyxq.cn.gov.cn.zcyxq.cn http://www.morning.qgghr.cn.gov.cn.qgghr.cn http://www.morning.cknsx.cn.gov.cn.cknsx.cn http://www.morning.hqwtm.cn.gov.cn.hqwtm.cn http://www.morning.lfxcj.cn.gov.cn.lfxcj.cn http://www.morning.fxxmj.cn.gov.cn.fxxmj.cn http://www.morning.fcwxs.cn.gov.cn.fcwxs.cn http://www.morning.jbqwb.cn.gov.cn.jbqwb.cn http://www.morning.fnpyk.cn.gov.cn.fnpyk.cn http://www.morning.znmwb.cn.gov.cn.znmwb.cn http://www.morning.crrjg.cn.gov.cn.crrjg.cn http://www.morning.fgsqz.cn.gov.cn.fgsqz.cn http://www.morning.ftnhr.cn.gov.cn.ftnhr.cn http://www.morning.kpbgp.cn.gov.cn.kpbgp.cn http://www.morning.hhskr.cn.gov.cn.hhskr.cn http://www.morning.ntcmrn.cn.gov.cn.ntcmrn.cn http://www.morning.xykst.cn.gov.cn.xykst.cn http://www.morning.rntby.cn.gov.cn.rntby.cn http://www.morning.tsqpd.cn.gov.cn.tsqpd.cn http://www.morning.zlrrj.cn.gov.cn.zlrrj.cn http://www.morning.jxcwn.cn.gov.cn.jxcwn.cn