linux

java8报错”Could not create the Java Virtual Machine”解决方案

 

本次实验环境:winjava@8。本篇内容主要讲这个大乌龙,而不是ide安装。

报错截图

主要的报错信息就是:

Could not create the Java Virtual Machine
Plain text

 

苏南大叔:java8报错"Could not create the Java Virtual Machine"解决方案 - java000

java8报错”Could not create the Java Virtual Machine”解决方案(图5-2)

 

乌龙的起源

这个乌龙,按理说还要归责于java身上。因为java版本升级到现在,用了一个和别人不一样的参数调用方式,而且居然不提示命令错误。而是提示如图这个错误消息。 “Could not create the Java Virtual Machine”。

其他可以在命令行里面运行的软件,包括java的早期版本。都是使用 --version 来查看软件版本的,而不是 -version。 而目前的最流行的java8系列,版本号查看方式却是 -version 。注意查看中划线的数量。这就是大乌龙的根本原因所在。

java -version
Plain text
java --version
Plain text

无论是win环境还是mac环境,都存在着这个问题。问题会导致,大家认为java根本没有安装好。

win:

 

苏南大叔:java8报错"Could not create the Java Virtual Machine"解决方案 - java001

java8报错”Could not create the Java Virtual Machine”解决方案(图5-3)

 

mac:

 

苏南大叔:java8报错"Could not create the Java Virtual Machine"解决方案 - java002

java8报错”Could not create the Java Virtual Machine”解决方案(图5-4)

 

然而转折

但是最新java9系列,又再次支持了--version命令。真心是没谁了。

 

苏南大叔:java8报错"Could not create the Java Virtual Machine"解决方案 - 030_java_version

java8报错”Could not create the Java Virtual Machine”解决方案(图5-5)

 

结论

学艺不精,主观臆断。也是苏南大叔的这次大乌龙的原因之一了。大家可千万别再犯苏南大叔这样的错误哦。java8系列是不支持--version的,但是java9却支持--version。所以,在未来的日子里面,大家还是可以以相同的习惯,继续使用--version的。

 

CentOS 7 yum安装 RabbitMQ

方法 一
1、下载 erlang

wget http://www.rabbitmq.com/releases/erlang/erlang-19.0.4-1.el7.centos.x86_64.rpm
2、安装 erlang

rpm -ivh erlang-19.0.4-1.el7.centos.x86_64.rpm
检查是否安装成功

[root@centos7 src]# erl
Erlang/OTP 19 [erts-8.0.3] [source] [64-bit] [async-threads:10]…………

Eshell V8.0.3 (abort with ^G)
1>
3、下载 rabbitmq

wget http://www.rabbitmq.com/releases/rabbitmq-server/v3.6.6/rabbitmq-server-3.6.6-1.el7.noarch.rpm
4、安装 rabbitmq

rpm -ivh rabbitmq-server-3.6.6-1.el7.noarch.rpm

# 如果提示如下
warning: rabbitmq-server-3.6.6-1.el7.noarch.rpm: Header V4 RSA/SHA1 Signature,
key ID 6026dfca: NOKEY
error: Failed dependencies:
socat is needed by rabbitmq-server-3.6.6-1.el7.noarch

# 安装 socat
yum install socat -y
方法 二
1、配置 epel

yum install epel-release
2、安装

yum install rabbitmq-server
5、启动

# 启动
systemctl start rabbitmq-server

# 状态
systemctl status rabbitmq-server

# 关闭
systemctl stop rabbitmq-server
6、配置网页插件(从网页登陆端口号:15672)

# 启用插件
rabbitmq-plugins enable rabbitmq_management
7、配置防火墙

# 添加端口
vi /etc/sysconfig/iptables
-A INPUT -p tcp -m state –state NEW -m tcp –dport 15672 -j ACCEPT

# 重启生效
systemctl restart iptables
8、配置访问账号密码和权限

# 添加用户mq,密码mq123
rabbitmqctl add_user mq mq123

# 添加权限
rabbitmqctl set_permissions -p / mq “.*” “.*” “.*”

# 修改用户角色
rabbitmqctl set_user_tags mq administrator

# 其它操作
# 删除一个用户
rabbitmqctl delete_user Username

# 修改用户密码
rabbitmqctl change_password Username Newpassword

# 查看当前用户列表
rabbitmqctl list_users
9、登陆

http://192.168.1.72:15672

 

CentOS7离线安装Nginx及配置

下载离线包:

用浏览器打开地址,选择您要下载的版本:http://nginx.org/packages/centos/7/x86_64/RPMS/

 

 

如图,我下载的1.16.1版。

执行安装:

将下载的rpm包上传到服务器,然后赋予可执行权限,执行安装。

sudo yum install -y nginx-1.16.1-1.el7.ngx.x86_64.rpm

启动Nginx并设置开机启动

sudo service nginx start
#或者
sudo systemctl start nginx.service
sudo systemctl enable nginx.service

查看Nginx版本

nginx -v

查看Nginx启动状态

sudo service nginx status
sudo systemctl status nginx.service

如图为正在运行状态:

 

 

停止Nginx服务

 

查看Nginx位置:

whereis nginx
sudo whereis nginx

默认安装则配置文件一般是这个:/etc/nginx/nginx.conf

root用户启动nginx默认监听80端口:

此时,如果您用浏览器访问却看不见这个界面,仍然打不开有可能是服务器防火墙拦截了80端口。去设置允许80端口,或者直接关闭防火墙即可。

sudo systemctl stop firewalld.service
sudo systemctl disable firewalld.service

然后再访问:

 

就正常了

 

 

卸载Nginx

yum remove nginx

检查配置文件是否正确

nginx -t -c /usr/nginx/conf/nginx.conf 
# 或者
/usr/nginx/sbin/nginx -t

 

重启Nginx

 

nginx -s reload

/usr/nginx/sbin/nginx -s reload

 

安装后一般会自动创建nginx用户:

 

shell三种引号的区别

Linux Shell中有三种引号,分别为双引号(” “)、单引号(‘ ‘)以及反引号(` `)。

其中双引号对字符串中出现的$、”、`和\进行替换;单引号不进行替换,将字符串中所有字符作为普通字符输出,而反引号中字符串作为shell命令执行,并返回执行结果。具体含义如下:

双引号(” “):在双引号中,除了$, ”, `和\以外所有的字符都解释成字符本身。

单引号(’ ‘):在单引号中所有的字符包括特殊字符($,”,`和\)都将解释成字符本身而成为普通字符。

反引号(` `):在反引号中的字符串将解释成shell命令来执行。

HAproxy Web 负载均衡解决方案

HAProxy提供高可用性负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。HAProxy特别适用于那些负载特大的web站点, 这些站点通常又需要会话保持或七层处理。HAProxy运行在当前的硬件上,完全可以支持数以万计的并发连接。并且它的运行模式使得它可以很简单安全的整合进您当前的架构中, 同时可以保护你的web服务器不被暴露到网络上。

下图是HAProxy的架构:

下图是HAProxy的监控页面截图:

HAProxy实现了一种事件驱动, 单一进程模型,此模型支持非常大的并发连接数。多进程或多线程模型受内存限制 、系统调度器限制以及无处不在的锁限制,很少能处理数千并发连接。事件驱动模型因为在有更好的资源和时间管理的用户端(User-Space) 实现所有这些任务,所以没有这些问题。此模型的弊端是,在多核系统上,这些程序通常扩展性较差。这就是为什么他们必须进行优化以 使每个CPU时间片(Cycle)做更多的工作。

解决安装python3.7.4报错Can”t connect to HTTPS URL because the SSL module is not available

简述

从官网下载了Python3.7.4,直接编译安装后,使用pip3出现了报错信息: Can’t connect to HTTPS URL because the SSL module is not available

错误原因

在Python3.7之后的版本,依赖的openssl,必须要是1.1或者1.0.2之后的版本,或者安装了2.6.4之后的libressl。

image.png

而本地的openssl依然是1.0.1e的。

1
2
[root@localhost ~]# openssl version
OpenSSL 1.0.1e-fips 11 Feb 2013

解决方法

上openssl官网下载1.0.2或者1.1之后的openssl包,编译安装。我选择的是1.0.2r。

1
2
3
4
5
6
[root@localhost ~]# tar zxvf openssl-1.0.2r.tar.gz
[root@localhost ~]# ./config --prefix=/opt/openssl1.0.2r --openssldir=/opt/openssl1.0.2r/openssl no-zlib
[root@localhost ~]# make && make install
[root@localhost ~]# echo "/opt/openssl1.0.2r/lib" >> /etc/ld.so.conf
[root@localhost ~]# ldconfig -v

注意:编译openssl1.0.2r的时候建议加上no-zlib,否则后面可能会出现undefined symbol: SSL_CTX_get0_param错误

安装python3.7

下载Python包,编译

1
2
3
[root@localhost ~]# tar xvf  Python-3.7.4.tar.xz
[root@localhost ~]# cd Python-3.7.4;./configure --prefix=/data/tools/Python3.7.4

编译完成后不要make,先修改Python源码包中ssl的参数

打开源码解压目录中的 Modules/Setup ,直接搜索 SSL= ,将SSL=后面的目录改为前面openssl的安装目录,并把下面三行的注释去掉。

1
2
3
4
5
[root@localhost ~]# vim Modules/Setup
SSL=/opt/openssl1.0.2r
_ssl _ssl.c \
    -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
    -L$(SSL)/lib -lssl -lcrypto

改完之后就在解压目录直接make就行了。

1
2
3
4
5
6
7
8
9
10
[root@localhost ~]# make && make install
[root@localhost ~]# echo "export PATH=/data/tools/Python3.7.4/bin:$PATH" >> ~/.bashrc
[root@localhost ~]# source ~/.bashrc
[root@localhost ~]# pip3 list
Package  Version
---------- -------
pip    19.0.3
setuptools 40.8.0
You are using pip version 19.0.3, however version 19.2.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

python3中pip3安装出错,找不到SSL的解决方式

最近在Ubuntu16.04上安装Python3.6之后,使用pip命令出现了问题,提示说找不到ssl模块,出现错误如下:

1
2
3
4
pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Could not fetch URL https:*******: There was a problem confirming the ssl certificate:
Can't connect to HTTPS URL because the SSL module is not available. - skipping

本人安装Python3.6的操作如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
1.wget获取安装包:
  wget http://www.python.org/ftp/python/3.6.2/Python-3.6.2.tgz
2.解压安装包:
  tar -xvzf Python-3.6.2.tgz
3.检查安装平台属性,系统是否有编译时所需要额库,以及库的版本是否满足编译需要
  ./configure
4.编译源码
  make
5.成功编译之后,安装
  sudo make install

在安装完之后,我们希望用pip3命令来安装numpy。首先,用如下命令安装pip3:

1
sudo install python3-pip

安装完之后,使用pip3安装numpy:

1
sudo pip install python-numpy

但是此时就出错了,显示本文开始提到的错误,大致意思就是安装过程需要SSL,但是那个SSL找不到。

本人查阅网上资料,发现openSSL是系统自带的,所以一定是安装了的,本人用以下命令尝试再次安装openssl:

1
2
sudo apt-get install openssl
sudo apt-get install libssl-dev

但是安装结果显示是对其进行更新(update),这说明系统已经安装了openssl。但是pip3就是找不到ssl模块。

本人进入python3中,然后进行ssl导入操作:

1
import ssl

结果出错,错误如下:

1
no moudle named _ssl

显示没有ssl模块。本人再进入python中(即系统自带的python2.7中),进行ssl导入操作:

1
import ssl

发现并没有显示错误,导入正常。这说明openssl已经安装了,只是python2可以调用,新安装的python3却不能调用。

本人查阅资料发现,在./configure过程中,如果没有加上–with-ssl参数时,默认安装的软件涉及到ssl的功能不可用,刚好pip3过程需要ssl模块,而由于没有指定,所以该功能不可用。

解决办法是重新对python3.6进行编译安装,用一下过程来实现编译安装:

1
2
3
4
cd Python-3.6.2
./configure --with-ssl
make
sudo make install

这样就允许安装的python3使用ssl功能模块,进入python3中,执行import ssl发现未出错,正常再次调用pip3指令来安装numpy,发现正常,问题解决!

以上这篇python3中pip3安装出错,找不到SSL的解决方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

centos6.5 无法上网的解决办法

新安装虚拟机centos6.5版本,可以ping通外网地址,却无法上网,无法用命令行下载文件,经解决后记录下解决方案
step1:检查虚拟机设置

确保网络连接工作在NAT模式,如图
这里写图片描述
step2:修改DNS地址

切换到root用户
切换到目录 /etc下

修改resolv.conf文件中的DNS地址,添加一个DNS地址 如nameserver:8.8.8.8 ,其中192.168.61.2是我虚拟机的网关IP,这个可以不用管,保存后退出。如图:
这里写图片描述

保存后打开火狐看能否登陆上百度,如果可以,那就OK了
但是,resolv.conf文件中的内容会在重启网络服务service network restart 或者虚拟机重启后 被重置。
所以要想配置被保留,我们需要修改虚拟机的网络配置
step3:修改虚拟机网络配置

切换到root用户
切换到目录network-scripts目录下,cd /etc/sysconfig/network-scripts/
修改网络配置文件ifcfg-eth0,在其中加入一项 DNS1=”8.8.8.8″,如图:
这里写图片描述

很多教程里面都说要设置启动模式为静态,把BOOTPROTO=”dhscp”改成BOOTPROTO=”static”,这样的话就会面临要加上静态的ip地址 IPADDR,还有网关GATEWAY等,这样比较麻烦,其实动态IP模式也能满足上网需求。
step4:重启网络服务

在root权限下通过命令 service network restart就可以重启网络服务
成功重启后,我们会发现/etc/resolv.conf文件中的DNS设置nameserver:8.8.8.8没有被重置掉
————————————————
版权声明:本文为CSDN博主「秒杀无心」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u012480148/article/details/73527370