linux启动命令制定java
linux启动命令制定java详细介绍
在 Linux 系统中启动 Java 程序通常涉及使用 java 命令执行编译后的类或 Jar 包。以下是常见的启动方式及相关命令示例:
一、基本启动命令
1. 运行单个
.class 文件(无包结构)
假设主类为 Main.class,且位于当前目录:
bash
Main
2. 运行带包结构的类(如
com.example.Main)
需确保类文件路径与包结构一致,通过 -cp(类路径)指定根目录:
bash
/路径/到/类根目录 com.example.Main
3. 运行可执行 Jar 包(
Manifest 中指定了主类)
bash
/路径/到/可执行.jar
4. 运行非可执行 Jar 包(需手动指定主类)
bash
/路径/到/依赖.jar:当前.jar 主类全路径(如 com.example.Main)
- 多个依赖用
:分隔(Linux/macOS),Windows 用;。
二、常用参数说明
1. JVM 配置参数
- 内存设置:bash
程序.jar - 垃圾回收器:bash
程序.jar - 禁用安全管理器:bash
none 程序.jar
2. 程序参数传递
在 Java 命令后直接添加参数,会传递给 main(String[] args):
bash
程序.jar 参数1 参数2
三、后台运行(不挂断)
1. 简单后台运行(终端关闭后停止)
bash
程序.jar
2. 用
nohup 避免终端断开影响
bash
程序.jar 日志.log >
nohup:忽略挂断信号,程序持续运行。> 日志.log:将标准输出重定向到日志文件。2>&1:将错误输出也重定向到标准输出(即同一份日志)。- 最后
&:让进程在后台运行。
3. 查看后台进程并终止
bash
进程ID
四、作为系统服务(推荐,随系统启动)
使用 systemd(适用于 CentOS 7+/Ubuntu 16.04+)创建服务文件:
- 创建服务文件:
bash
/etc/systemd/system/your-service.service
- 写入以下内容(根据实际路径修改):
ini
- 重载
systemd并启动服务:
bash
systemctl daemon-reloadsystemctl start your-service.service
systemctl your-service.service
- 管理服务:
bash
systemctl status your-service.servicesystemctl stop your-service.service
systemctl restart your-service.service
五、常见问题
- 找不到主类(ClassNotFoundException):
- 检查
jar是否可执行(-jar需 Manifest 正确)。 - 非可执行 Jar 需用
-cp明确类路径和主类全称。
- 检查
- 权限问题:
- 确保 Jar 文件有读取权限:
chmod +r 程序.jar。 - 避免以
root运行,建议创建专用用户。
- 确保 Jar 文件有读取权限:
- 日志输出异常:
- 用
nohup或服务配置中的日志重定向,避免输出到终端。
- 用
根据你的具体场景(运行 Jar 包、自定义类、作为服务等),选择合适的启动方式即可。如果需要更详细的配置(如容器化部署、集群管理),可进一步说明需求。