一台服务器同时启动两个版本jdk

本文讲述了作者在使用Java17部署项目时遇到版本不一致报错的问题,通过在管理员权限下以特定路径启动jar包,解决了在服务器上同时运行1.8和17版本JDK的需求。

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

之前Java项目都是1.8的jdk,在服务器部署正常使用,服务器配置环境变量jdk1.8版本。最近一次我用了jdk17版本,部署服务器后,遇见了jdk版本不一致报错

报错内容:

52指向jdk1.8,61指向jdk17,大概就是jdk版本不对。查阅很多相关文章,都是配置两个环境变量,分别jdk1.8和jdk17,然后进行版本的切换。但是这样,不能同时运行。解决方案:

第一步:用管理员权限打开cmd,然后进入到项目jar的位置;这步很简单,不截图啦

第二步:输入命令:"D:\Program Files\Java\jdk-17\bin\java" -jar XXX.jar。

XXX是指项目jar包的名称;前面是你jdk17安装的位置,在bin目录下有个Java.exe应用程序。

对应替换你的位置就行啦

这样就可以通过jdk17启动项目啦 ,jdk1.8的项目也可以正常使用 ~~~~

<think>好的,用户问的是如何将第一台虚拟机中的JDK传输到第二台虚拟机上。我需要先理解用户的需求,然后提供步骤清晰且可靠的方法。 首先,用户可能有两台虚拟机,可能是在同一网络下,或者需要跨网络传输。传输文件通常有几种方法,比如使用SCP、SFTP、rsync,或者通过共享存储、HTTP服务器等。考虑到用户可能对命令行操作比较熟悉,SCP或rsync可能是最直接的方式。 接下来,需要确认用户是否已经安装了必要的工具,比如openssh-client和openssh-server,因为SCP依赖于SSH。如果用户没有安装,可能需要先指导他们安装。例如,在基于Debian的系统上,使用sudo apt-get install openssh-client openssh-server。 然后,步骤大概是这样的:在第一台虚拟机中,使用scp命令将JDK的安装包或目录传输到第二台。需要知道JDK的具体路径,比如可能是/opt/jdk-xx目录,或者是一个压缩包。假设用户已经将JDK解压到某个目录,或者有tar.gz文件,那么可以使用scp -r来递归传输目录,或者直接传输压缩文件。 另外,可能需要考虑权限问题,确保目标虚拟机有写入权限的目标路径,比如/home/user或/opt。如果用户没有配置SSH免密登录,传输时需要输入第二台虚拟机的密码。如果用户觉得每次输入密码麻烦,可以建议他们配置SSH密钥对,但这可能属于额外步骤,用户可能暂时不需要。 还有一种情况是,如果两台虚拟机不能直接SSH连接,可能需要通过中间媒介,比如先将JDK下载到本地,再上传到第二台,或者使用共享文件夹。但这种情况可能较为复杂,用户可能更倾向于直接传输。 另外,如果用户使用的是VirtualBox或VMware,可能有共享文件夹的功能,可以直接设置共享目录,这样传输文件会更方便。不过这可能依赖于虚拟机软件的配置,需要用户启用相关功能。 还需要提醒用户检查防火墙设置,确保SSH端口(默认22)开放,否则传输会失败。此外,传输完成后,可能需要用户在第二台虚拟机上配置环境变量,比如JAVA_HOME和PATH,但用户的问题只是传输,可能不需要这部分,但可以简要提及。 总结下来,步骤可能是: 1. 确保两台虚拟机网络互通,SSH服务正常。 2. 使用SCP命令从第一台传输到第二台。 3. 验证传输是否成功。 4. 可选的环境变量配置。 需要确保命令正确,比如scp -r /path/to/jdk user@second_vm_ip:/target/path,用户需要替换实际的路径、用户名和IP地址。同时提醒注意权限问题和路径是否存在。 可能用户是刚接触虚拟机和文件传输的新手,所以步骤要详细,避免遗漏关键点。同时,如果用户遇到问题,可能需要进一步排查网络连接或权限问题,但回答中应尽量覆盖常见情况。</think>要将第一台虚拟机中的JDK传输给第二台,可按照以下步骤操作: --- ### **方法1:通过 `scp` 命令直接传输** 1. **确认网络互通** 确保两台虚拟机处于同一网络,且能通过IP或主机名互相访问(可通过 `ping` 测试)。 2. **传输JDK文件/目录** 在第一台虚拟机中执行以下命令: ```bash scp -r /path/to/jdk/ user@second_vm_ip:/target/directory/ ``` - `/path/to/jdk/`:第一台JDK的路径(如 `/opt/jdk-17` 或压缩包路径 `/home/user/jdk-17.tar.gz`)。 - `user@second_vm_ip`:第二台虚拟机的用户名和IP地址(如 `ubuntu@192.168.1.100`)。 - `/target/directory/`:第二台的目标路径(如 `/opt/` 或 `/home/user/`)。 3. **输入密码** 按提示输入第二台虚拟机的登录密码,等待传输完成。 --- ### **方法2:通过共享文件系统** 1. **挂载共享目录** 如果使用 VirtualBox/VMware: - 在第一台虚拟机中设置共享文件夹,将JDK放入该目录。 - 在第二台虚拟机中挂载同一共享目录,直接拷贝文件。 2. **手动拷贝** ```bash cp /shared_folder/jdk-17.tar.gz /opt/ ``` --- ### **方法3:使用HTTP/FTP临时服务** 1. **在第一台启动HTTP服务** ```bash cd /path/to/jdk-parent/ python3 -m http.server 8000 # 使用Python临时HTTP服务 ``` 2. **在第二台下载文件** ```bash wget http://first_vm_ip:8000/jdk-17.tar.gz ``` --- ### **验证传输结果** 在第二台虚拟机中检查文件: ```bash ls /target/directory/jdk-17 # 确认JDK目录或文件存在 ``` --- ### **附:环境变量配置(可选)** 若需在第二台使用JDK,需配置环境变量: ```bash # 编辑配置文件(如 ~/.bashrc 或 /etc/profile) export JAVA_HOME=/opt/jdk-17 export PATH=$JAVA_HOME/bin:$PATH # 使配置生效 source ~/.bashrc ``` --- ### **注意事项** 1. 确保防火墙开放SSH端口(默认22)或HTTP端口(如8000)。 2. 若使用压缩包传输,需在第二台解压: ```bash tar -xzf jdk-17.tar.gz -C /opt/ ``` 3. 若需免密传输,可配置SSH密钥对(通过 `ssh-keygen` 和 `ssh-copy-id`)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值