ZhangJie Software Development Engineer

开发调试及环境搭建

2024-02-04
ZhangJie

开发调试及环境搭建相关。

Visual Studio

调试

  • std::string str条件断点设置
VS2010,可以使用:strcmp(str._Bx._Buf, "my value") == 0
VS2015,可以使用:strcmp(str._Bx._Ptr, "my value") == 0

快捷键

  • 改成小写:Ctrl+U
  • 改成大写:Ctrl+Shift+U

VS插件

  • Astyle

代码整理工具。

https://marketplace.visualstudio.com/items?itemName=Lukamicoder.AStyleExtension

--indent=spaces=4 --min-conditional-indent=2 --align-pointer=type --align-reference=type --indent-switches --indent-cases --indent-col1-comments --pad-oper --pad-header --unpad-paren --delete-empty-lines --close-templates --convert-tabs --mode=c
  • ForceUTF8

Visual Studio (中文版)默认保存的文本文件是GB2312编码(代码页936)的,默认的行尾(End of line)是CRLF的。 如果仅仅是在windows下开发问题也不大,但是涉及到跨平台开发的时候,就不是很满意了。

VS本身的 文件 -> 高级保存选项 中是可以选择保存的编码和行尾的,但是不支持为默认的。 还有一个问题是cl编译的时候,对utf-8格式支持不好(需要添加/source-charset:utf-8选项,默认是当作本地字符集的),对于带BOM标记的文件则没有问题。

所以我们在项目中统一规定使用UTF-8 with BOM编码,行尾为LF(\n)。

这里介绍两个插件

ForceUTF8 (with BOM) 这个插件还有两个版本,一个是带BOM的,一个是不带的。 插件是开源的,代码很简单。就是在文档保存的时候,判断是否是文本文件。如果是的话,那就先转编码为UTF-8 with BOM,再写入文件。

下载地址 https://marketplace.visualstudio.com/items?itemName=jz5.ForceUTF8withBOM

其实可以直接在这个项目上改,在保存文件前把\r\n、\r、\n都替换为\n即可(要注意替换次序)。

Line Endings Unifier 这个插件用来统一行尾。 可以设置针对的文件和目标行尾。它也是开源的。

下载地址 https://marketplace.visualstudio.com/items?itemName=JakubBielawa.LineEndingsUnifier

主题

https://studiostyl.es/settings/downloadScheme/61?version=null

地址中的数字对应的方案文件的ID,6是selenitic,1是nightfall.vssettings,35是Humane Studio等等,可以通过网页源代码查看。参数版本是VS的版本,默认是vs2010-vs2013,用空(null)就可以了。

设置

  • VS编译依赖关系设置

Solution Property Pages -> Common Properties -> Project Dependencies

性能分析

Debug -> Profiler -> Start Diagnostic Tools Without Debugging…

分析失败问题解决:点击安装文件,选择修复,重启。

GDB

启动程序准备调试

gdb yourpram

(必须在编译时加上-g选项,生成的目标文件才可以用gdb进行调试)

  • run/r

然后使用run或者r命令开始程序的执行,也可以使用 run parameter将参数传递给该程序

  • info

可使用info查看断点相关的信息

info breakpoints

使用delete breakpoints 断点号 删除断点

  • display

display命令 查看参数的值

不同文件夹中的文件,我们可以用 directory 命令修改路径

(gdb) directory ../src/
(gdb) b sockets_ops.cpp:66
  • break/b

添加断点

break 16
  • next/n

单条语句执行

  • continue/c

继续运行程序

  • print/p i

打印变量i的值,print命令简写

  • bt

查看函数调用堆栈

  • finish

退出函数

  • q

退出gdb

Visual Studio Code

调试

python 调试环境

  • visualstudio_py_launcher.py: 存在bug调试器(有些断点无法进入)
C:\Users\jason\Desktop\pp>cd c:\Users\jason\Desktop\pp && cmd /C "set "PYTHONIOENCODING=UTF-8" && set "PYTHONUNBUFFERED=1" && python C:\Users\jason\.vscode\extensions\ms-python.python-2018.6.0\pythonFiles\PythonTools\visualstudio_py_launcher.py c:\Users\jason\Desktop\pp 38083 34806ad9-833a-4524-8cd6-18ca4aa74f14 RedirectOutput,RedirectOutput c:\Users\jason\Desktop\pp\test.py "
  • ptvsd: 较好的调试器
    C:\Users\jason\Desktop\pp>cd c:\Users\jason\Desktop\pp && cmd /C "set "PYTHONIOENCODING=UTF-8" && set "PYTHONUNBUFFERED=1" && set "PYTHONPATH=C:\Users\jason\.vscode\extensions\ms-python.python-2018.6.0\pythonFiles\experimental\ptvsd" && python -m ptvsd --host localhost --port 38093 c:\Users\jason\Desktop\pp\test.py "
    
{
    // 使用 IntelliSense 了解相关属性。
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Python Experimental: Terminal (integrated)",
            "type": "pythonExperimental",
            "request": "launch",
            "program": "${file}",
            "console": "integratedTerminal"
        }
    ]
}

修改完配置必须重启才能生效。

vue 调试环境

安装VSCode插件:JavaScript Debugger。

Run and Debug -> Select environment选择Chrome -> 在配置文件中添加devtool:’source-map’ -> Settings中勾选Allow Breakpoints Everywhere

参考https://blog.csdn.net/weixin_44786530/article/details/130263725

设置

  • 鼠标拖曳不能选中整行文字,只能选中纵向矩形范围。

Manage -> Settings -> User -> Editor: Column Selection

在windows上使用VS Code远程连接Linux编写代码

ubuntu中:

$ sudo apt-get install openssh-server

Windows中:

  • 下载VS插件
Visual Studio Code Remote Development Extension Pack

Remote Development
ms-vscode-remote.vscode-remote-extensionpack
  • 拷贝公钥到linux
$ scp JASON.pub jason@192.168.153.128:/home/jason/authorized_keys
jason@192.168.153.128's password:
JASON.pub                        100%  398   115.8KB/s   00:00

root@jason:~/.ssh# cp /home/jason/authorized_keys ./authorized_keys 
  • 连接Linux ```sh VSCode -> F1 -> Remote-SSH: Connect to Host…

jason@192.168.153.128



- .ssh\config

```sh
Host 192.168.232.128
    HostName 192.168.232.128
    User jason

ubuntu

换国内源

ubuntu不同版本的源不同。

  • 清华源
sudo vim /etc/apt/sources.list
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
sudo apt-get update
sudo apt-get upgrade
  • 中科大源
deb https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
deb-src https://mirrors.ustc.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
  • 阿里源
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
sudo apt-get update

sudo apt-get upgrade

sudo apt-get install build-essential

vim

设置vim Tab键的缩进

在 Vim 中可以很方便的根据不同的文件类型来设置。 使用 tab 制表符或者空格还可以设置长度,非常灵活。 在自己的家目录下建立.vimrc文件。终端输入vi ~/.vimrc 回车。
在.vimrc文件中输入如下文本:

set tabstop=4
set softtabstop=4
set shiftwidth=4
set noexpandtab
set nu
set autoindent
set cindent

其中:

  • tabstop: 表示一个 tab 显示出来是多少个空格的长度,默认8。

  • softtabstop: 表示在编辑模式的时候按退格键的时候退回缩进的长度,当使用 expandtab 时特别有用。

  • shiftwidth:表示每一级缩进的长度;一般设置成跟 softtabstop 一样。 当设置成 expandtab 时,缩进用空格来表示, noexpandtab 则是用制表符表示一个缩进。

  • nu:表示显示行号。
  • autoindent:表示自动缩进。
  • cindent:是特别针对C语言自动缩进。

设置完后保存退出。运行source ~/.vimrc 使配置文件生效。即可体验按tab键时缩进4个空格的宽度,C编程时换行自动缩进。

数据库

CentOS 7下使用yum安装MariaDB

CentOS 7 已使用了 MariaDB 替代了默认的 MySQL。Linux下安装MariaDB官方文档参见:https://mariadb.com/kb/zh-cn/installing-mariadb-with-yum/

  • 使用rpm -qa | grep mariadb搜索 MariaDB 现有的包,如果存在,使用rpm -e –nodeps mariadb-*全部删除
    [root@localhost ~]# rpm -qa | grep mariadb
    mariadb-server-5.5.52-1.el7.x86_64
    mariadb-libs-5.5.52-1.el7.x86_64
    [root@localhost ~]# rpm -e mysql-*
    错误:未安装软件包 mysql-* 
    
  • 使用rpm -qa grep mariadb搜索 MariaDB 现有的包,如果存在,使用yum remove mysql mysql-server mysql-libs compat-mysql51全部删除
[root@localhost ~]# yum remove mysql mysql-server mysql-libs compat-mysql51
已加载插件:fastestmirror, langpacks
参数 mysql 没有匹配
参数 mysql-server 没有匹配
参数 compat-mysql51 没有匹配
正在解决依赖关系
--> 正在检查事务
---> 软件包 mariadb-libs.x86_64.1.5.5.52-1.el7 将被 删除
--> 正在处理依赖关系 libmysqlclient.so.18()(64bit),它被软件包 perl-DBD-MySQL-4.023-5.el7.x86_64 需要
--> 正在处理依赖关系 libmysqlclient.so.18()(64bit),它被软件包 2:postfix-2.10.1-6.el7.x86_64 需要
--> 正在处理依赖关系 libmysqlclient.so.18()(64bit),它被软件包 1:qt-mysql-4.8.5-13.el7.x86_64 需要..........


删除:
  mariadb-libs.x86_64 1:5.5.52-1.el7                                            

作为依赖被删除:
  akonadi-mysql.x86_64 0:1.9.2-4.el7     mariadb-server.x86_64 1:5.5.52-1.el7   
  perl-DBD-MySQL.x86_64 0:4.023-5.el7    postfix.x86_64 2:2.10.1-6.el7          
  qt-mysql.x86_64 1:4.8.5-13.el7        

完毕!
[root@localhost ~]# rpm -qa|grep mariadb
[root@localhost ~]#
  • 开始新的安装, 创建MariaDB.repo文件
vi /etc/yum.repos.d/MariaDB.repo

插入以下内容:

# MariaDB 10.2.4 CentOS repository list - created 2017-05-05 16:13 UTC
# http://downloads.mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2.4/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

系统及版本选择:https://downloads.mariadb.org/mariadb/repositories/#mirror=tuna

  • 运行安装命令安装MariaDB
[root@localhost ~]# yum -y install MariaDB-server MariaDB-client
已加载插件:fastestmirror, langpacks
mariadb                                                  | 2.9 kB     00:00     
mariadb/primary_db                                         |  18 kB   00:09     
....
安装  2 软件包 (+4 依赖软件包)
....
  • 首先下载安装包,然后进行自动安装,安装成功之后启动MariaDB服务
systemctl start mariadb #启动服务
systemctl enable mariadb #设置开机启动
systemctl restart mariadb #重新启动
systemctl stop mariadb.service #停止MariaDB
  • 登录到数据库

用mysql -uroot命令登录到MariaDB,此时root账户的密码为空。

  • 进行MariaDB的相关简单配置,使用mysql_secure_installation命令进行配置
mysql_secure_installation

首先是设置密码,会提示先输入密码

Enter current password for root (enter for none):<–初次运行直接回车

设置密码

Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车
New password: <– 设置root用户的密码
Re-enter new password: <– 再输入一次你设置的密码

其他配置

Remove anonymous users? [Y/n] <– 是否删除匿名用户,回车

Disallow root login remotely? [Y/n] <–是否禁止root远程登录,回车,

Remove test database and access to it? [Y/n] <– 是否删除test数据库,回车

Reload privilege tables now? [Y/n] <– 是否重新加载权限表,回车
  • 初始化MariaDB完成,接下来测试登录
mysql -uroot -ppassword
  • 配置MariaDB的字符集

查看/etc/my.cnf文件内容,其中包含一句!includedir /etc/my.cnf.d 说明在该配置文件中引入/etc/my.cnf.d 目录下的配置文件。

使用vi server.cnf命令编辑server.cnf文件,在[mysqld]标签下添加:

init_connect='SET collation_connection = utf8_unicode_ci' 
init_connect='SET NAMES utf8' 
character-set-server=utf8 
collation-server=utf8_unicode_ci 
skip-character-set-client-handshake

如果/etc/my.cnf.d 目录下无server.cnf文件,则直接在/etc/my.cnf文件的[mysqld]标签下添加以上内容。

文件/etc/my.cnf.d/client.cnf

vi /etc/my.cnf.d/client.cnf

在[client]中添加

default-character-set=utf8

文件/etc/my.cnf.d/mysql-clients.cnf

vi /etc/my.cnf.d/mysql-clients.cnf
在[mysql]中添加

default-character-set=utf8
 全部配置完成,重启mariadb

systemctl restart mariadb
之后进入MariaDB查看字符集

mysql> show variables like "%character%";show variables like "%collation%";
显示为

+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client    | utf8                      |
| character_set_connection | utf8                      |
| character_set_database  | utf8                      |
| character_set_filesystem | binary                    |
| character_set_results    | utf8                      |
| character_set_server    | utf8                      |
| character_set_system    | utf8                      |
| character_sets_dir      | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.00 sec)

+----------------------+-----------------+
| Variable_name        | Value          |
+----------------------+-----------------+
| collation_connection | utf8_unicode_ci |
| collation_database  | utf8_unicode_ci |
| collation_server    | utf8_unicode_ci |
+----------------------+-----------------+
3 rows in set (0.00 sec)
字符集配置完成。
  • 添加用户,设置权限
创建用户命令

mysql>create user username@localhost identified by 'password';
直接创建用户并授权的命令

mysql>grant all on *.* to username@localhost indentified by 'password';
授予外网登陆权限 

mysql>grant all privileges on *.* to username@'%' identified by 'password';
授予权限并且可以授权

mysql>grant all privileges on *.* to username@'hostname' identified by 'password' with grant option;
复制代码
MariaDB [mysql]> select host,user,password from user;
+-----------------------+-------+------------------------+
| host                  | user  | password               |
+-----------------------+-------+------------------------+
| localhost             | root  | *E87F9354F7E889A65E... |
| localhost.localdomain | root  | *E87F9354F7E889A65E... |
| 127.0.0.1             | root  | *E87F9354F7E889A65E... |
| ::1                   | root  | *E87F9354F7E889A65E... |
| localhost             |       |                        |
| localhost.localdomain |       |                        |
+-----------------------+-------+------------------------+
7 rows in set (0.00 sec)

查询各Schema和Table占用的空间:

MariaDB [information_schema]> use information_schema;
MariaDB [information_schema]> select table_schema,round(sum(DATA_LENGTH/1024/1024),2) as datasize  from tables group by table_schema;
+--------------------+----------+
| table_schema       | datasize |
+--------------------+----------+
| common             |     0.05 |
| information_schema |     0.09 |
| mysql              |     9.11 |
| nemo               |   103.23 |
| river              |     3.78 |
+--------------------+----------+
5 rows in set (2.026 sec)

MariaDB [information_schema]> select table_name,concat(round(sum(data_length/1024/1024),2),'MB') as datasize from tables where table_schema='nemo' group by table_name;
+---------------------------------+----------+
| table_name | datasize |
+---------------------------------+----------+
| actions             | 0.05MB |
| addresses            | 0.02MB |
| addressfieldattributes    | 0.02MB |
| addressprops          | 0.02MB |
| composedtypes          | 1.52MB |
| composedtypeslp        | 1.52MB |
| comptypegrp2comptype      | 0.05MB |
| config             | 0.02MB |
| itemcockpittemplrels      | 0.02MB |
| itemsynctimestamps        | 2.52MB |
| keyfeature            | 0.02MB |
| keyfeaturelp           | 0.02MB |
| keyvaluemap           | 2.52MB |
| keywords             | 0.02MB |
| keywordsuggestionrule     | 0.02MB |
+---------------------------------+----------+
15 rows in set (0.544 sec)

其中只授予部分权限把 其中 all privileges或者all改为select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file其中一部分。

Linux系统教程:如何检查MariaDB服务端版本 http://www.linuxidc.com/Linux/2015-08/122382.htm

MariaDB Proxy读写分离的实现 http://www.linuxidc.com/Linux/2014-05/101306.htm

Linux下编译安装配置MariaDB数据库的方法 http://www.linuxidc.com/Linux/2014-11/109049.htm

CentOS系统使用yum安装MariaDB数据库 http://www.linuxidc.com/Linux/2014-11/109048.htm

安装MariaDB与MySQL并存 http://www.linuxidc.com/Linux/2014-11/109047.htm

  • 忘记root用户名和密码如何处理
首先用 killall -TERM mysqld 向mysqld server 发送kill命令关掉mysqld server(不是 kill -9),你必须是UNIX的root用户或者是你所运行的SERVER上的同等用户,才能执行这个操作

然后  /usr/bin/mysqld_safe  --skip-grant-tables --skip-networking & 

登录: mysql -p或者使用mysql无密码登录 

>use mysql 
>update user set password=password("new_pass") where user="root"; 

>flush privileges;

exit;

Linux SWAP配置

Linux 中的 SWAP(交换分区),类似于 Windows 的虚拟内存。系统会把一部分硬盘空间虚拟成内存使用,将系统内非活动内存换页到 SWAP,以提高系统可用内存。

注:参阅 ECS 使用须知,云服务器 ECS 如果您使用普通云盘,不建议使用swap分区。如果是高效云盘或SSD云盘,可以根据实际情况使用swap分区。

SWAP 配置

开启 SWAP

1、创建用于交换分区的文件:

dd if=/dev/zero of=/mnt/swap bs=block_size count=number_of_block 

注:block_size、number_of_block 大小可以自定义,比如 bs=1M(bs代表单位) count=1024 代表设置 1G 大小 SWAP 分区。

设置交换分区文件:

mkswap /mnt/swap

立即启用交换分区文件

swapon /mnt/swap
[jason@izbp170tm6dyv1or9j6xgyz ~]$ free
              total        used        free      shared  buff/cache   available
Mem:        1016168      600532      142412         444      273224      264160
Swap:         10236           0       10236

关闭 SWAP

当系统出现内存不足时,开启 SWAP 可能会因频繁换页操作,导致 IO 性能下降。如果要关闭 SWAP,可以采用如下方法。

swapoff /mnt/swap

Linux tomcat7安装

cd /opt
tar -zxvf apache-tomcat-7.0.86.tar.gz 

修改bin/setclasspath.sh配置

在setclasspath.sh文件中的Make sure prerequisite environment variables are set这行前面增加下面两行:

# add by jason 20180419
export JAVA_HOME=/opt/jdk1.7.0_80
export JRE_HOME=/opt/jdk1.7.0_80/jre
  • 配置 在tomca7/bin 目录下面,新建 setenv.sh配置,catalina.sh启动的时候会调用,同时配置java内存参数,setenv.sh的内容如下:
    # create this file by jason 20180419
    # add tomcat pid
    CATALINA_PID="$CATALINA_BASE/tomcat.pid"
    # add java opts
    JAVA_OPTS="-server-XX:PermSize=256M -XX:MaxPermSize=1024m -Xms512M -Xmx1024M-XX:
    MaxNewSize=256m"
    
sudo chmod a+x setenv.sh 

在/usr/lib/systemd/system目录下增加tomcat.service,目录必须是绝对目录,内容如下:

[Unit]
Description=Tomcat
After=syslog.targetnetwork.target remote-fs.target nss-lookup.target

[Service]
Type=forking
PIDFile=/opt/apache-tomcat-7.0.86/tomcat.pid
ExecStart=/opt/apache-tomcat-7.0.86/bin/startup.sh
ExecReload=/bin/kill-s HUP $MAINPID
ExecStop=/bin/kill-s QUIT $MAINPID
PrivateTmp=true

[Install]
WantedBy=multi-user.target

[unit]配置了服务的描述,规定了在network启动之后执行。[service]配置服务的pid,服务的启动,停止,重启。[install]配置了使用用户。 因为配置pid,在启动的时候会再tomcat根目录生成tomcat.pid文件,停止之后删除。 同时tomcat在启动时候,执行start不会启动两个tomcat,保证始终只有一个tomcat服务在运行。 多个tomcat可以配置在多个目录下,互不影响。 使服务开机启动:

sudo systemctl enable tomcat.service

常用命令

查看tomcat的状态
systemctl status tomcat.service

配置开机启动
systemctl enable tomcat.service

删除开机启动
systemctl disable tomcat.service

启动tomcat
systemctl start tomcat.service

停止tomcat
systemctl stop tomcat.service

重启tomcat
systemctl restart tomcat.service

测试启动

终端输入
systemctl start tomcat.service

如果没有报错,则表示启动正常,可以查看状态
systemctl status tomcat.service

或者直接查看进程
ps -ef|grep tomcat

Linux java jre1.7安装

cd /opt
sudo tar -zxvf server-jre-7u80-linux-x64.tar.gz

设置环境变量:

vi /etc/profile

在profile文件末尾加入:

# add by jason 20180419 
# set java environment
JAVA_HOME=/opt/jdk1.7.0_80
JRE_HOME=/opt/jdk1.7.0_80/jre
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
export JAVA_HOMEJRE_HOME CLASSPATH PATH

使环境变量立即生效

source /etc/profile

测试是否生效,在终端输入:

java -vsesion

上一篇 cmake学习笔记

Comments

Content