##################################################
失败的 VMware 16 + CentOS 7、GNOME、Java、配置中文输入
——————————
打开 VMware 16
——————————
配置虚拟机硬件环境
%%%%%
典型安装
%%%%%
稍后安装操作系统
%%%%%
安装客户机系统
客户机操作系统:
Linux
版本:
CentOS 7 64 位
%%%%%
命名虚拟机
虚拟机名称:
CentOS_7_GNOME+Java+ibus
位置:
E:VM-OSCentOS_7_GNOME+Java+ibus
%%%%%
指定磁盘容量
最大磁盘大小:
10 G
勾选:
将虚拟磁盘存储为单个文件
%%%%%
已经准备好创建虚拟机
点击
自定义硬件
移除
声卡
打印机
USB 控制器
网络适配器
内存
1024 M
CPU
1 个处理器
2 个内核
虚拟化引擎全部开启
CD/DVD
使用 ISO 映像文件
映像文件为 CentOS-7-x86_64-DVD-2009.iso
点击
完成
%%%%%
虚拟机创建完毕
%%%%%
关于宿主机数据交换
这边我们移除了 USB 所以 U 盘数据交换不现实
又移除了网卡所以 SSH 连接也不可能
所以直接创建一个小硬盘映射到实体机
实体机和虚拟机使用这块小硬盘进行数据交换
添加硬件类型:
通用 SCSI 设备
虚拟磁盘类型为
IDE
创建新虚拟机硬盘
硬盘大小 512 MB:
0.5 G
勾选
立即分配所有磁盘空间
将虚拟磁盘存储为单个文件
虚拟硬盘的名字 默认为
CentOS_7_GNOME+Java+ibus-0.vmdk
看看 20 G 的主虚拟硬盘叫什么名字 默认的
CentOS_7_GNOME+Java+ibus.vmdk
正在创建
创建成功
CentOS_7_GNOME+Java+ibus-0.vmdk 是新虚拟磁盘
CentOS_7_GNOME+Java+ibus-0-flat.vmdk 是预分配的空间 你看是 512 GB
点击确定后再打开虚拟机设置
以后装好系统就能映射了!
——————————
安装 CentOS 7
%%%%%
开启虚拟机
光盘引导 选择第一项安装:
Install CentOS 7
%%%%%
默默启动到安装界面
选择安装过程中使用的语言 这边选择
中文
简体中文
继续后跳到安装配置主界面:
本地化:
日期和时间
键盘
系统支持的语言
软件:
安装源
软件选择
系统:
安装位置
KDUMP 内核崩溃转储机制
网络和主机名
SECURIY POLOCY 安全策略
%%%%%
本地化
配置好日期和时间 点击完成:
键盘布局 默认:
语言支持 安装界面选择什么语言这边就默认什么语言
不过这边还是勾选支持英语:
本地化设置完毕:
%%%%%
软件
安装源 默认就好 sr0 是第一个光驱 除非你要联网镜像服务器下载安装:
软件选择
带 GUI 的服务器
就是 GUI 桌面 默认是 Gnome 当然你也可以在附加选项中选择安装一个 KDE
这边仅仅选择 Java 平台 和 基本开发工具 :
Java 平台
开发工具
点击完成后会检查依赖:
软件也配置完毕:
%%%%%
系统
先把 KDUMP 关了
系统坏了我们就重装或者恢复快照 内核转储有点占内存:
网络和主机名
因为移除了网卡 所以没有任何网络设备:
主机名 这边设置
lilian
点击 应用:
安装位置 可以看到有两款虚拟硬盘
点击勾选两块硬盘 然后勾选:
我要配置分区
点击完成来到手动分区:
新挂载点修改为标准分区:
交换分区給 512 意思意思就行了 毕竟不是真实开发环境:
根分区 挂载点选择好后直接
添加挂载点
将第一块硬盘剩下的空间全部分配給她
文件系统还是喜欢 ext4 改一下:
新建挂载点
/mnt/IDE_Z
这个就是以后要数据交换的分区了!剩下的容量都給她
设备类型为
标准分区
文件系统为 fat32 这样 Windows 才认得出来
vfat
点击完成:
点击接受更改 返回主界面:
点击开始安装!
%%%%%
用户设置
正在安装 让我们设置 root 密码和创建普通用户
等待安装:
安装完成
——————————
设置第一启动硬盘
然后关机
打开电源时进入固件
进入 BIOS 设置启动顺序:
设置好第一启动硬盘后:
按下 F10 YES 保存:
成功引导系统
——————————
首次登录配置中文输入
勾选同意协议:
点击完成配置:
GNOME 登录器:
登入系统成功
欢迎 选择汉语:
选择汉语:
双击汉语 选择输入源:
点击前进 关闭位置 点击前进:
点击 跳过:
一切就绪:
可以输入中文:
——————————
配置 java 环境
默认 Java 环境是 JDK 8 版本也不算低:
编写一个 java 程序:
hello.java code:
public class hello {
publice static void main ( String []args ) {
System.out.println ( "Hello,World!" );
}
}
发现不能编译:
发现是环境变量问题:
首先切换 root 用户:
找了一圈发现 jdk 安装在
/usr/lib/jvm
并且指向的是 jre 目录而不是 jdk 目录
选择配置默认 JDK 版本:
alternatives --config java
带 * 的是当前默认使用 JDK
这里发现是 1.8 版本的 java 就行了 直接回车:
配置 java 环境变量
先找好自己的 jdk 路径 如果嫌一个个输入太麻烦 可以按如下方式追加到文件 profile 中:
这样就省去了很多麻烦:
vi /etc/profile
在文件最后添加环境变量:
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64 JRE_HOME=$JAVA_HOME/jre CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin export JAVA_HOME export JRE_HOME export CLASS_PATH export PATH
wq 后查看文件最后 9 行内容:
示例一个带 java 环境的 /etc/profile 文件:
# /etc/profile
# System wide environment and startup programs, for login setup
# Functions and aliases go in /etc/bashrc
# It's NOT a good idea to change this file unless you know what you
# are doing. It's much better to create a custom.sh shell script in
# /etc/profile.d/ to make custom changes to your environment, as this
# will prevent the need for merging in future updates.
pathmunge () {
case ":${PATH}:" in
*:"$1":*)
;;
*)
if [ "$2" = "after" ] ; then
PATH=$PATH:$1
else
PATH=$1:$PATH
fi
esac
}
if [ -x /usr/bin/id ]; then
if [ -z "$EUID" ]; then
# ksh workaround
EUID=`/usr/bin/id -u`
UID=`/usr/bin/id -ru`
fi
USER="`/usr/bin/id -un`"
LOGNAME=$USER
MAIL="/var/spool/mail/$USER"
fi
# Path manipulation
if [ "$EUID" = "0" ]; then
pathmunge /usr/sbin
pathmunge /usr/local/sbin
else
pathmunge /usr/local/sbin after
pathmunge /usr/sbin after
fi
HOSTNAME=`/usr/bin/hostname 2>/dev/null`
HISTSIZE=1000
if [ "$HISTCONTROL" = "ignorespace" ] ; then
export HISTCONTROL=ignoreboth
else
export HISTCONTROL=ignoredups
fi
export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL
# By default, we want umask to get set. This sets it for login shell
# Current threshold for system reserved uid/gids is 200
# You could check uidgid reservation validity in
# /usr/share/doc/setup-*/uidgid file
if [ $UID -gt 199 ] && [ "`/usr/bin/id -gn`" = "`/usr/bin/id -un`" ]; then
umask 002
else
umask 022
fi
for i in /etc/profile.d/*.sh /etc/profile.d/sh.local ; do
if [ -r "$i" ]; then
if [ "${-#*i}" != "$-" ]; then
. "$i"
else
. "$i" >/dev/null
fi
fi
done
unset i
unset -f pathmunge
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64
JRE_HOME=$JAVA_HOME/jre
CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME
export JRE_HOME
export CLASS_PATH
export PATH
然后还是不行!!!!简直救命了
然后换一个版本重启之后发现还是不行!!!
百度了好久,说的很复杂,重新再linux配置环境变量,输入 vi /etc/profile进入,添加以下代码:
export JAVA_HOME=/usr/local/jdk1.8.0_144 export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
再测试,最后也没有成功
后来在stackoverflow上看到了这个
84 down vote accepted
You installed the Java Runtime Environment (JRE) only, which does not contain javac. For javac, you have to install the OpenJDK Development Environment. You can install java-devel or java-1.6.0-openjdk-devel, which both include javac.
By the way: you can find out which package provides javac with a yum search, e.g.
su -c 'yum provides javac'
Another note: using yum and openjdk is only one possibility to install the JDK. Many people prefer Sun/Oracle's "original" SDK. See How to install Java SDK on CentOS? and links for alternatives.
大意就是我们用yum来装原生的就行了
在终端输入
yum install java-devel
执行安装
再测试就行了
虽然Centos7下自带JDK1.7和1.8,运行java - version命令能显示出版本信息,但是jdk安装环境不全,缺少必要的jar包,即使配置好了环境变量,运行javac等命令时依旧不能用。所以我们需要先将自带的jdk删除后,将我们下载好的jdk解压,然后配置环境变量。
JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.261-2.6.22.2.el7_8.x86_64
JRE_HOME=$JAVA_HOME/jre
#CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
CLASS_PATH=.:$JAVA_HOME/lib/ext:$JAVA_HOME/lib/dt.jar:$JRE_HOME/lib/tools.jar
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOME
export JRE_HOME
export CLASS_PATH
export PATH



