OpenJDK

Installing OpenJDK Manually

*爱你&永不变心* 提交于 2020-03-13 13:45:29
lwk@qwfys:~$ wget https://download.java.net/java/GA/jdk11/28/GPL/openjdk-11+28_linux-x64_bin.tar.gz -O /tmp/openjdk-11+28_linux-x64_bin.tar.gz lwk@qwfys:~$ sudo tar xfvz /tmp/openjdk-11+28_linux-x64_bin.tar.gz --directory /usr/lib/jvm lwk@qwfys:~$ rm -f /tmp/openjdk-11+28_linux-x64_bin.tar.gz lwk@qwfys:~$ sudo sh -c 'for bin in /usr/lib/jvm/jdk-11/bin/*; do update-alternatives --install /usr/bin/$(basename $bin) $(basename $bin) $bin 100; done' lwk@qwfys:~$ sudo sh -c 'for bin in /usr/lib/jvm/jdk-11/bin/*; do update-alternatives --set $(basename $bin) $bin; done' 来源: oschina 链接: https://my

Centos7部署SonarQube7.2

旧街凉风 提交于 2020-03-12 18:43:39
简介 官网 本文档安装的Sonar版本:7.2 下载安装 前置安装: # jdk1.8 sudo yum install java-1.8.0-openjdk.x86_64 sudo yum install java-1.8.0-openjdk-devel # unzip sudo yum install unzip SonarQube安装 # 创建用户 sudo useradd sonar -m -s /bin/bash sudo passwd sonar # 切换到创建的用户 su sonar # 下载 wget https://binaries.sonarsource.com/Distribution/sonarqube/sonarqube-7.2.zip # 解压 unzip sonarqube-7.2.zip # 进入解压目录bin下对应的操作系统目录 cd sonarqube-7.2/bin/linux-x86-64/ sh sonar.sh console # 后台启动(建议第一次使用console,以后用start): # sh sonar.sh start 访问: http://ip:9000 查看是否启动成功,启动成功可以看到页面: 访问成功后可以停止后台进程,往下配置数据库信息。 配置数据库 笔者使用的数据库是MySQL5.7,数据库安装请参考

【Java必修课】判断String是否包含子串的四种方法及性能对比

落花浮王杯 提交于 2020-03-10 23:45:56
1 简介 判断一个字符串是否包含某个特定子串是常见的场景,比如判断一篇文章是否包含敏感词汇、判断日志是否有 ERROR 信息等。本文将介绍四种方法并进行性能测试。 2 四种方法 2.1 JDK原生方法String.indexOf 在 String 的函数中,提供了 indexOf(subStr) 方法,返回子串 subStr 第一次出现的位置,如果不存在则返回-1。例子如下: //包含Java assertEquals(7, "Pkslow Java".indexOf("Java")); //如果包含多个,返回第一次出现位置 assertEquals(0, "Java Java".indexOf("Java")); //大小写敏感 assertEquals(-1, "Google Guava".indexOf("guava")); 2.2 JDK原生方法String.contains 最直观判断的方法是 contains(subStr) ,返回类型为 boolean ,如果包含返回 true ,不包含则返回 false 。例子如下: //包含Java assertTrue("code in Java".contains("Java")); //大小写敏感,不包含GO assertFalse("Let's go".contains("GO")); //转为大写后包含

OpenJDK 11 JVM日志相关参数解析与使用

心不动则不痛 提交于 2020-03-09 12:02:25
OpenJDK 11 是在 OpenJDK 8 之后的第一个长期支持版本,这一版本在JVM日志配置有了很大改动,主要是规范化,统一化了。在 OpenJDK 8 中,日志配置有很多状态位,让人摸不着头脑,并且比较难以维护与进一步迭代。在 OpenJDK 11终于将JVM日志相关的配置规范起来,统一配置。这篇文章会对于这些配置做一个基本的说明和解析。 一、JVM日志标签 JVM 日志和我们 java 代码中的日志,其实是类似。在 Java 代码中,我们一般使用 slf4j 记录日志,例如: Logger logger = LogFactory.getLooger("core-logger"); logger.info("this is core logger log"); 然后日志中就会输出类似于: 2020-02-05 10:50:52.670 INFO [core-logger] [22] [pool-13-thread-1]: this is core logger log 包括时间戳,日志级别,日志标签(core-logger),日志内容这些信息。JVM 日志也是包括这些元素。举个例子: [0.182s][debug][jit,compilation] 1 3 java.lang.StringLatin1::hashCode (42 bytes) [0.183s][debug]

重磅:2020年 JVM 生态报告解读

ⅰ亾dé卋堺 提交于 2020-03-04 15:25:43
1. 前言 2020 年 JVM 生态报告已经出炉。该报告由英国软件安全服务商 Snyk 联合 Oracle 官方刊物 The Java Magazine 联合推出。我们来看看 JVM 生态圈最新的情况以及发展的趋势,这对 Java 开发者至关重要。 2. OpenJDK 的崛起 随着 Oracle 修改其 JDK 上的许可协议,用户在选择 JDK 的问题上有了更多顾虑。尽管甲骨文 JDK 仍然占主导地位,占 34% ,而去年的报告这一比例为 70% 。 越来越多的开发者转向了其他 OpenJDK 提供商。每四个开发人员就有一个选择采用 OpenJDK 。 究其原因,只有 9% 的参与者愿意付费使用 JDK ,都是钱的锅啊!另外 JDK 发布节奏的加快(每年 3 月、9 月)也影响了用户的 JDK 更新策略,也间接影响了这些用户的付费决定。 3. Java 8 依然是主流 Java 8 依然占据着 64% ,去年为 79% 。 2018 年 9 月发布了 Java 的第一个长期支持( LTS )版本 Java 11 , Java 8 的份额正在慢慢降低。参与调查的开发人员中已经有四分之一在生产环境中运行过 Java 11 。虽然 JDK 的发布节奏加快了,但是每六个月就需要迁移到新版本对于公司和开发者来说也是成本巨大的。 51% 的受访者表示当前版本的工作正常,迁移并不是必须的

[每日短篇] 26

孤街浪徒 提交于 2020-03-04 03:29:57
背景 Spring Boot 2.3(截至目前版本为 M2)为容器化部署提供了一个新特性 Layered Jar。一般来说 Spring Boot 程序都是以 fat jar 的方式构建的,文件大小动辄 50M、100M 这样子,对 docker image 其实很不友好。Docker image 本身是分层结构,如果某一层没有变化在 pull 时就不必上传,一旦有变化就要上传整层。一个程序中,程序自身代码、资源的变更频率要远大于依赖库的变更频率,大多数时候因为几行代码变化导致上传整个 jar 文件,无论是存储占用还是时间效率上都是很大的浪费,后者在国内网速下尤其让人揪心。 Layered Jar 新特性 layered jar 为不同变更频率内容分层提供了支持工具。本质上这个特性是 org.springframework.boot:spring-boot-maven-plugin 提供的一种新的 layout ,当使用新 layout 打包时,一个 spring-boot-layertools jar 会打包到 fat jar 中,新特性是由这个 jar 提供的。 要使用这个新特性需要做的事情非常少,首先是在 pom 中增加 layout 配置,我猜未来这个选项会成为默认值,从而不需任何显式配置。 <build> <plugins> <plugin> <groupId>org

Centos7 卸载自带的OpenJDK

给你一囗甜甜゛ 提交于 2020-03-03 17:28:40
Centos7 卸载自带的OpenJDK 一、查询系统是否已经安装jdk rpm -qa|grep java 或 #rpm -qa|grep jdk 或 #rpm -qa|grep gcj 二、卸载已安装的jdk rpm -e --nodeps java-1.8.0-openjdk-1.8.0.181-7.b13.el7.x86_64 rpm -e --nodeps java-1.8.0-openjdk-headless-1.8.0.181-7.b13.el7.x86_64 这三个可以不删除,然后通过 java -version查看是否还存在 jdk 环境 三、现在就可以愉快地去装 jdk   现在就可以把各种需要的环境装到自己设置好的文件夹下啦,强迫症,没办法。 下载: wget http://download.oracle.com/otn-pub/java/jdk/8u171-b11/512cd62ec5174c3487ac17c61aaa89e8/jdk-8u171-linux-x64.tar.gz?AuthParam=1531155951_4e06a4d17c6c1dbfb8440352e19dd2ae 1)习惯性地把压缩包放到这里(rz上传):/usr/envPackage   yum -y install lrzxz   然后解压放到这个包下:/usr/env  

安装Tomcat到Linux(源码)

泪湿孤枕 提交于 2020-03-03 10:43:01
运行环境 系统版本:CentOS Linux release 7.3.1611 软件版本:Tomcat-9.0.11 硬件要求:无 安装过程 1、安装YUM-EPEL存储库 YUM-EPEL存储库由EPEL官网提供。 [root@localhost ~]# yum -y install epel-release.noarch 2、安装依赖 我这里使用的OpenJDK,建议大家采用JDK。 [root@localhost ~]# yum -y install java-1.8.0-openjdk java-1.8.0-openjdk-devel [root@localhost ~]# java -version openjdk version "1.8.0_181" OpenJDK Runtime Environment (build 1.8.0_181-b13) OpenJDK 64-Bit Server VM (build 25.181-b13, mixed mode) 3、从官网下载Tomcat 下载Code(核心)版本。 [root@localhost ~]# wget http://mirrors.hust.edu.cn/apache/tomcat/tomcat-9/v9.0.12/bin/apache-tomcat-9.0.12.tar.gz 4、配置环境变量

ubuntu安装jdk以及切换java版本

自闭症网瘾萝莉.ら 提交于 2020-03-02 17:58:52
1.安装jdk sudo add-apt-repository ppa:openjdk-r/ppa //添加ppa源openjdk到本地镜像源 sudo apt-get update //更新 sudo apt-get install openjdk-6-jdk sudo apt-get install openjdk-7-jdk sudo apt-get install openjdk-8-jdk 添加完ppa源后可以下载各个版本的openjdk,如果只是下载openjdk-7-jdk可以不用添加ppa源,ubantu默认有 2.切换jdk cd ~ cp .bashrc .bashrc6 cp .bashrc .bashrc8 在.bashrc的最后加上 export JAVA_HOME = / usr / lib / jvm / java - 1.7 .0 - openjdk - amd64 export JRE_HOME = $ { JAVA_HOME } / jre export CLASSPATH = . : $ { JAVA_HOME } / lib : $ { JRE_HOME } / lib export PATH = $ { JAVA_HOME } / bin : $PATH 在.bashrc6的最后加上 export JAVA_HOME = / usr /