java project 项目在 linux 下面部署步骤

出了某几点细小的差别,跟Windows的部署是完全一致的,具备通用性

首先,介绍一下部署步骤:

第一:安装jdk

第二:安装tomcat

第三:配置环境变量;在/etc/profile的最后追加:

export JAVA_HOME=/root/jdk1.6.0_01

export JRE_HOME=/root/jdk1.6.0_01/jre

export PATH=$JAVA_HOME/bin:$JRE_HOME/lib:$PATH

export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JRE_HOME

export TOMCAT_HOME=/root/apache-tomcat-5.5.29

第四:部署写好的JavaProject

Java Project的部署相对比较麻烦,

部署步骤如下:

A)从eclipse中将Java Project编译好,然后拷贝出bin文件夹,上传至服务器上即可;

B)需要将所有用到的jar包(我们的jar包放在/usr/lib中),配置到classpath中,如下:

exportCLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JRE_HOME:/usr/lib/activation-1.1.jar:/usr/lib/annogen-0.1.0.jar:/usr/lib/antlr-2.7.7.jar:/usr/lib/axiom-api-1.2.7.jar:/usr/lib/axiom-dom-1.2.7.jar:/usr/lib/axiom-impl-1.2.7.jar:/usr/lib/axis2-adb-1.4.1.jar:/usr/lib/axis2-adb-codegen-1.4.1.jar:/usr/lib/axis2-codegen-1.4.1.jar:/usr/lib/axis2-corba-1.4.1.jar:/usr/lib/axis2-fastinfoset-1.4.1.jar:/usr/lib/axis2-java2wsdl-1.4.1.jar:/usr/lib/axis2-jaxbri-1.4.1.jar:/usr/lib/axis2-jaxws-1.4.1.jar:/usr/lib/axis2-jaxws-api-1.4.1.jar

C如果入口Java类不是在bin的根目录下,比如:入口在bin/beans/common/startup.class中,我们运行的时候,不应该是

cd bin

cd beans

cd common

java startup

而应该是bin]#javabeans.common.startup

D) 举例:

有如下的类:

[java] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. import java.io.BufferedReader;  
  2. import java.io.InputStreamReader;  
  3. import java.math.BigDecimal;  
  4. import java.sql.Connection;  
  5. import java.sql.DriverManager;  
  6. import java.sql.ResultSet;  
  7. import java.sql.Statement;  
  8.   
  9.   
  10. public class MysqlTest {  
  11.     public static void main(String[] args) throws Exception {  
  12.         Connection conn = getConnection();  
  13.         Statement stmt = conn.createStatement();  
  14.         ResultSet rst =stmt.executeQuery("select * from gongwenview");  
  15.         while(rst.next()) {  
  16.             BigDecimal articleId = rst.getBigDecimal(1);  
  17.             String title = rst.getString(2);  
  18.               
  19.             System.out.println("articleId:\t"+articleId+"\ttitle:\t"+title);  
  20.         }  
  21.           
  22.         System.out.println("查询结束,请继续");  
  23.         BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));  
  24.         System.out.println("你输入的内容是:"+reader.readLine());  
  25.         BufferedReader reader1 = new BufferedReader(new InputStreamReader(System.in));  
  26.     }  
  27.   
  28.     public static Connection getConnection() {  
  29.         Connection conn = null;  
  30.         try {  
  31.             Class.forName("com.mysql.jdbc.Driver");  
  32.             String url = "jdbc:mysql://localhost:3306/gov?characterEncoding=utf-8";  
  33.             conn = DriverManager.getConnection(url, "root""test");  
  34.         } catch (Exception e) {  
  35.             e.printStackTrace();  
  36.         }  
  37.         return conn;  
  38.     }  
  39. }  

这里面使用到了 mysql-connector-java-5.0.8-bin.jar ,把 MysqlTest.class 和 mysql-connector-java-5.0.8-bin.jar 一起放入 linux 目录 /application/mysqltest/ 下面,然后编写启动 shell  start.sh

export JAVA_HOME=/usr/java/jdk1.6.0_20
export JRE_HOME=/usr/java/jdk1.6.0_20/jre
export PATH=$JAVA_HOME/BIN:$JRE_HOME/lib:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:$JRE_HOME:/application/mysqltest/MySQL-connector-java-5.0.8-bin.jar
java MysqlTest

运行的时候,只需要执行:sh start.sh 就可以了。

需要注意的是 sh start.sh 跟MysqlTest.class 放在同一个目录下才行,如果要执行的不是一个 class 文件而是一个jar包的话,就把要执行的 jar 包的路径也放入到 CLASSPATH 路径里面,然后运行带有 Main 函数的类就行了。


Linux下运行可执行Jar包,首先准备jar包,一般的编译工具Eclipse,jbuilder都提供export功能,可以生成jar包。

运行的命令行很简答

java -jar 给定的jar包 [如果运行的jar包需要参数,直接后面依次给出就好]

eg:

java -jar Hello.jar  inPut.txt  outPut.txt

<think>首先,用户的问题是关于如何将Java项目部署Linux系统的详细步骤和方法。我需要基于提供的引用内容来构建回答。 关键引用内容回顾: - 引用[1]: 提到JavaWeb项目部署Linux服务器的重要性,以及工具准备。 - 引用[2]: 讨论了在Linux部署Java项目步骤,特别是设置Tomcat作为服务。 - 引用[3]: 描述了在CentOS 7上部署项目,需要JRE、数据库、Jar/War包,以及Tomcat(如果使用War包)。 - 引用[4]: 给出了设置Java环境变量的代码示例。 用户的问题焦点:将Java项目部署Linux系统的详细步骤和方法。 系统指令: - 所有行内数学表达式使用$...$格式。 - 独立公式使用$$...$$格式并单独成段(但在这个上下文中,可能不需要数学公式)。 - LaTeX语法正确。 - 使用中文回答。 - 生成相关问题。 - 在回答中引用的段落末尾自然地添加引用标识,例如[^1]。 - 回答结构清晰,逐步解决问题,保证真实可靠。 回答结构: 1. **介绍和重要性**:简要解释为什么需要在Linux部署Java项目(基于引用[1])。 2. **准备工具和环境**:列出所需工具和环境(基于引用[1]和[3])。 3. **详细步骤**:分解部署过程为几个步骤。 - 安装JDK(Java Development Kit)。 - 安装和配置Tomcat(如果使用War包)。 - 安装数据库(如MySQL)。 - 部署项目:上传项目文件(Jar或War包)。 - 配置环境变量(基于引用[4])。 - 设置服务(基于引用[2])。 4. **测试和访问**:如何测试部署并允许访问。 5. **常见问题**:简要提及潜在问题(基于引用)。 6. **结尾**:总结。 7. **生成相关问题**:在最后添加相关问题。 确保回答真实可靠:基于提供的引用,但我会确保内容是通用的和准确的。引用来自用户提供的文本,我需要自然地引用它们。 添加引用标识: - 当引用特定内容时,添加, [^2], 等。 生成相关问题: - 在回答结束时,添加“§§相关问题§§”部分,列出相关问题。 现在,构建回答大纲: 1. **引言**:解释部署Linux的重要性。 2. **准备阶段**: - 确保Linux系统(如CentOS)已安装。 - 安装JDK:设置环境变量。 - 安装Tomcat(可选,如果使用Web项目)。 - 安装数据库(如MySQL)。 3. **部署步骤**: - 将项目打包为Jar或War文件。 - 上传文件到Linux服务器。 - 配置Tomcat或直接运行Jar文件。 - 设置环境变量(如引用[4]所示)。 - 设置服务以便自动启动(如引用[2])。 4. **测试部署**: - 启动服务。 - 从本地或局域网访问项目。 5. **常见问题**:如权限问题、路径问题等。 6. **结论**。 7. **相关问题**。 最终输出格式: - 使用中文。 - 清晰分节。 - 在引用末尾添加引用标识。 </think> ### 将Java项目部署Linux系统的详细步骤和方法 将Java项目部署Linux服务器是项目上线的关键一步,尤其对于Java Web项目(如基于Spring Boot的应用),它能充分利用Linux系统的稳定性、安全性和高效性[^1]。以下是详细的步骤指南,基于主流实践(如CentOS或Ubuntu系统): #### 1. **准备工具和环境** - **Linux服务器**:确保已安装Linux发行版(如CentOS 7、Ubuntu)并获取SSH访问权限[^3]。 - **Java环境**:安装JDK(Java Development Kit),例如OpenJDK 11或Oracle JDK。使用包管理器安装: ```bash # CentOS sudo yum install java-11-openjdk-devel # Ubuntu sudo apt install openjdk-11-jdk ``` 配置环境变量(编辑`~/.bashrc`或`/etc/profile`),添加以下代码[^4]: ```bash export JAVA_HOME=/usr/lib/jvm/java-11-openjdk # 根据实际路径修改 export PATH=$JAVA_HOME/bin:$PATH ``` 运行`source ~/.bashrc`使配置生效。 - **数据库**:安装MySQL或其他数据库(如PostgreSQL): ```bash sudo yum install mysql-server # CentOS sudo systemctl start mysqld ``` - **Web服务器(可选)**:如果项目是War包(传统Java Web应用),安装Tomcat[^3]: ```bash sudo yum install tomcat # CentOS sudo systemctl start tomcat ``` - **项目包**:将项目打包为可执行Jar文件(Spring Boot)或War文件(Servlet应用),使用Maven或Gradle构建。 #### 2. **部署项目到服务器** - **上传文件**:使用SCP或SFTP工具(如WinSCP或`scp`命令)将Jar/War文件上传到服务器: ```bash scp your-project.jar user@server_ip:/opt/app/ ``` - **部署Jar包(推荐)**: - 直接运行Jar文件(适合Spring Boot): ```bash java -jar /opt/app/your-project.jar ``` - 使用`nohup`后台运行: ```bash nohup java -jar your-project.jar > app.log 2>&1 & ``` - **部署War包**: - 将War文件复制到Tomcat的`webapps`目录: ```bash cp your-project.war /var/lib/tomcat/webapps/ ``` - 重启Tomcat生效: ```bash sudo systemctl restart tomcat ``` #### 3. **配置服务和自启动** - 创建Systemd服务文件(确保项目开机自启)[^2]: - 新建文件`/etc/systemd/system/your-service.service`: ```ini [Unit] Description=Your Java Application After=network.target [Service] User=your_user ExecStart=/usr/bin/java -jar /opt/app/your-project.jar Restart=on-failure [Install] WantedBy=multi-user.target ``` - 启用并启动服务: ```bash sudo systemctl daemon-reload sudo systemctl start your-service sudo systemctl enable your-service ``` #### 4. **测试和访问** - **检查日志**:使用`journalctl -u your-service`或查看Tomcat日志(`/var/log/tomcat/catalina.out`)。 - **防火墙配置**:开放端口(如8080): ```bash sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent sudo firewall-cmd --reload ``` - **访问应用**:在浏览器输入`http://server_ip:8080`,或在局域网内允许其他设备访问[^3]。 #### 5. **常见问题解决** - **权限问题**:确保用户对项目目录有读写权限(`chown -R user:user /opt/app`)。 - **环境变量未生效**:确认`JAVA_HOME`路径正确并通过`java -version`验证。 - **端口冲突**:使用`netstat -tuln`检查端口占用。 通过以上步骤,您的Java项目就能成功部署Linux服务器。核心在于环境配置、服务管理和自动化[^3]。如果项目依赖外部资源(如数据库),还需配置连接信息(如`application.properties`)。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值