java在远程linux服务器中切换目录和新建目录,把本地文件上传到新建的目录中

该博客详细介绍了如何使用Java结合ganymed-ssh2库,实现在远程Linux服务器上切换目录、新建目录,并将本地文件上传到新建目录的过程。通过Connection、SFTPv3Client和SCPClient类,执行shell命令创建目录,执行SCP操作上传文件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

//java在远程linux服务器中切换目录和新建目录,把本地文件上传到刚才新建的目录中
//ganymed-ssh2-build210.jar需要下载
package com.company;

import ch.ethz.ssh2.*;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

public class Main {
    //#开发环境
    //#数据服务器的ip地址
    private static String dataServerIp = "192.168.100.100";
    // #数据服务器的用户名
    private static String dataServerUsername = "root";
    //#数据服务器的密码
    private static String dataServerPassword = "abc";
    //#数据服务器的目的文件夹
    private static String dataServerDestDir = "/export/uploadDir/";
    private static String localDir = "D:\\上传文件的临时目录\\";

    public static void main(String[] args) {
        //文件scp到数据服务器
        Connection conn = new Connection(dataServerIp);
  
<think>我们要将Windows中的jar文件上传远程Linux服务器并运行。参考了上述引用内容,特别是引用[1]、[2]、[3]提到了使用SCP或WinSCP工具,引用[4]提到了使用PuTTY的密钥验证方式,引用[5]提到了运行jar包的命令。步骤分解:1.上传文件:可以使用WinSCP(图形界面)或scp命令(命令行)将jar文件从Windows上传Linux服务器。2.运行jar包:通过PuTTY登录到Linux服务器,使用nohup命令后台运行jar包。具体步骤:###1.上传jar文件Linux服务器####方法一:使用WinSCP(推荐图形界面操作)-下载安装WinSCP:从官网(https://winscp.net/)下载并安装。-打开WinSCP,新建会话:-文件协议:选择SFTP(或SCP)-主机名:远程服务器的IP地址-端口号:22(默认)-用户名:远程服务器的用户名-密码:如果使用密钥登录,则参考引用[4]设置密钥文件(.ppk文件);如果使用密码,直接填写密码。-连接成功后,左侧是本地文件(Windows),右侧是远程服务器文件Linux)。-在左侧找到jar文件,直接拖拽到右侧的目标目录(例如:/opt/myapp)。-传输完成后,关闭WinSCP。####方法二:使用scp命令(需要Windows支持scp,比如安装OpenSSH客户端)-在Windows命令提示符(CMD)或PowerShell中执行:```bashscpC:\path\to\your\file.jarusername@remote_host:/path/to/remote/directory```例如:```bashscpD:\myapp\app.jarroot@192.168.1.100:/opt/myapp```然后输入服务器密码。###2.在Linux服务器上运行jar包-使用PuTTY登录远程服务器:-打开PuTTY,输入服务器IP地址端口(22),选择SSH连接。-如果有密钥,在Auth设置中加载.ppk文件(参考引用[4])。-登录后输入用户名密码(或自动使用密钥登录)。-切换到jar文件所在目录,例如:```bashcd/opt/myapp```-运行jar包(假设Java环境已安装):```bashnohupjava-jaryour_app.jar&```这条命令会以后台方式运行jar包,并且退出终端时程序不会停止(参考引用[5])。注意事项:-确保远程服务器已安装Java运行环境(JRE或JDK)。如果没有,需要先安装。-如果使用nohup,程序日志默认输出到当前目录的nohup.out文件。你也可以指定输出文件,例如:```bashnohupjava-jaryour_app.jar>app.log2>&1&```-如果jar包需要特定端口,确保服务器防火墙已开放该端口。###相关问题1.如何检查远程服务器上是否安装了Java环境?2.如果我想在服务器重启后jar包自动运行,应该怎么做?3.如何查看nohup运行的程序的日志?4.如何停止后台运行的jar包程序?</think> ### 将Windows中的JAR文件上传远程Linux服务器并运行(使用WinSCP/PuTTY) #### 一、上传JAR文件(WinSCP方式) 1. **准备工作** - 确保已有:Linux服务器的IP地址、SSH端口(默认22)、用户名、密码/密钥文件(.ppk) - 下载安装 [WinSCP](https://winscp.net/)(Windows图形化传输工具) 2. **连接服务器** - 打开WinSCP → 新建会话: ``` 文件协议:SFTP 或 SCP 主机名:服务器IP(如192.168.1.100) 端口号:22 用户名:root(或其他有权限的用户) 密码:输入服务器密码(或加载密钥文件) ``` - 密钥设置参考:[^4] 中“SSH→验证→密钥文件”步骤 - 点击 **登录** → 确认安全警告 3. **上传文件** - 左侧窗口:浏览到Windows本地的JAR文件目录(如 `C:\app\myapp.jar`) - 右侧窗口:进入Linux目标目录(如 `/opt/apps/`) - **拖拽** JAR文件从左侧到右侧窗口完成传输 [^1][^3] --- #### 二、在Linux服务器运行JAR(PuTTY方式) 1. **连接服务器** - 打开PuTTY → 输入服务器IPSSH端口 → 输入用户名密码登录 2. **验证文件上传** ```bash cd /opt/apps/ # 进入目标目录 ls -l *.jar # 检查文件是否存在 ``` 3. **运行JAR程序** ```bash # 直接运行(关闭SSH后进程终止) java -jar myapp.jar # 后台持久化运行(推荐[^5]) nohup java -jar myapp.jar > app.log 2>&1 & ``` - **命令解释**: - `nohup`:忽略挂断信号,保持程序运行 - `> app.log`:输出日志到文件 - `2>&1`:将错误输出合并到标准输出 - `&`:后台运行 4. **验证运行状态** ```bash ps aux | grep java # 查看Java进程 tail -f app.log # 实时监控日志 ``` --- #### 三、关键注意事项 1. **依赖环境** - 确保Linux服务器已安装Java: ```bash java -version # 检查版本 ``` 未安装时用 `sudo apt install openjdk-11-jdk`(Ubuntu)或 `yum install java-11-openjdk`(CentOS) 2. **权限问题** - 若上传失败,检查Linux目录权限: ```bash sudo chmod 755 /opt/apps/ # 开放目录权限 ``` 3. **防火墙/安全组** - 开放JAR应用所需的端口(如8080): ```bash sudo ufw allow 8080/tcp # Ubuntu ``` --- ### 相关问题 1. 如何解决WinSCP连接时出现的"Network error: Connection refused"? 2. 如何在Linux中配置Java环境变量(JAVA_HOME)? 3. 除了`nohup`,还有哪些方式持久化运行JAR程序? 4. 如何通过Shell脚本实现JAR包的自动启动停止?
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

二十六画生的博客

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值