Windows系统中开发的Java项目在虚拟机中的Linux系统中跑起来

背景:由于Linux系统一般用作服务器的部署,大部分的开发实际在Windows系统,所以在Win系统开发的项目一般都部署在Linux系统。只有一台电脑使用时,就采用在本地电脑安装虚拟机,在虚拟机中安装Linux系统,再在Linux系统进行服务的部署。

一、软件信息及介绍

  1. 虚拟机:VirtualBox6.0.1;
  2. Linux系统:ubuntu-16.04.6-desktop-i386;javafx为什么还需要下载maven依赖_Ubuntu
  3. jdk版本:jdk-8u281-linux-i586.tar.gz;javafx为什么还需要下载maven依赖_java_02

软件介绍:选择VirtualBox,而没有选择VirtualMachine是因为VirtualMachine为商业软件,VirtualBox开源;选择Ubuntu是因为Ubuntu是供学习使用好上手的;注意:安装了32位的系统,安装jdk时就只能安装32位的jdk了,若安装了32位的系统,安装64位的jdk,在验证jdk安装是否成功时,会报错:cannot execute binary file

二、整体步骤

  1. 安装VirtualBox6.0.1;(略…)
  2. Ubuntu镜像下载;(不推荐官方,参考:ubuntu 16.04 镜像下载)
  3. 在VirtualBox中安装Ubuntu16;(略…)
  4. 在Ubuntu中配置ip;
    a).图形界面配置;
    b).命令窗口配置;
  5. VirtualBox中配置网路:使得Win系统与Ubuntu系统能相互网路连接;
  6. 在Ubuntu中安装ssh服务并启动;
  7. 在Ubuntu中安装jdk;
    a).通过WinSCP、Xftp等工具将win系统下载的jdk上传到Ubuntu;
    b).直接在Ubuntu中下载jdk;
  8. 设置jdk环境变量,并验证;
  9. 通过WinSCP、Xftp等工具将项目包上传到Ubuntu,并启动;

I、在Ubuntu中配置Ip:

  1. 使用命令配置: a).使用ifconfig命令:#ifocnifg 查看网卡信息;#ifconfig 网卡名称 ip地址; ifconfig 查看IP
sudo ifconfig eth0 192.168.1.222
 sudo ifconfig eth0 down
 sudo ifconfig eth0 up
 ping (wionds ip)

b).使用ip命令;

  1. 使用图形界面配置:
    参考大神的:virtualbox 设置桥接模式

II、在VirtualBox中设置网络

javafx为什么还需要下载maven依赖_ubuntu_03


详细介绍参考大神的:virtualbox 设置桥接模式 配置好网路在同一个网段,并在VirtrualBox中的网络设置好后,能相互ping通主机和虚拟系统即可;

注意:本机和虚拟机能相互ping通网络,不能使用ssh远程登录的几个可能原因:

  • Linux中ssh服务没有安装;安装详细介绍参考大神的:linux安装ssh和开启 ssh服务
  • Linux防火墙没有关闭,导致SSH连接失败(关闭防火墙);
  • LinuxSSH服务没有启动,查看是否启动SSH服务;
  • SSH服务启动后,仍然连接不上,需要确认是否是SSH服务得端口问题,核对连接端口( /etc/ssh/sshd_config);

III、在Ubuntu中安装jdk

1.使用WinSCP等工具将宿主机下载的jdk压缩文件上传到Ubuntu中;(或者在Ubuntu中下载);
2.将下载的jdk.tar.gz解压;(#tar -xzvf ..jdk.tar.gz)

IV、设置环境变量并验证

1.使用root权限配置的环境变量针对每个用户有效;针对个人用户的在其他文件;

#vi /etc/profile; 在文件中增加:

【1】32位jdk环境变量配置:

javafx为什么还需要下载maven依赖_Ubuntu_04


【2】64位jdk环境变量配置:

javafx为什么还需要下载maven依赖_linux_05


2.重新导入该文件生效:#source /etc/profile

3.#java -version 验证;

注意:若验证时报错:cannot execute binary file,很有可能是系统的位数和jdk位数不一致导致的,可参考大神的:安装JDK出现 cannot execute binary file

V、将项目包上传到服务器上部署

一般使用WinSCP、Xftp等工具,选择协议时选择Sftp协议。使用Xftp连接时报错:javafx为什么还需要下载maven依赖_java_06,请参考博主: 找不到匹配的outgoing encryption 算法