Windows10通过WSL编译jdk12
Windows使用WSL编译OpenJDK
安装Ubuntu以及配置国内镜像
首选确保windows10已经安装了ubuntu
更换ubuntu20.04国内镜像,这里我选择的是阿里云镜像
sudo vim /etc/apt/sources.list
将使用如下内容替换原先源
deb http://mirrors.aliyun.com/ubuntu/ focal main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal universe
deb http://mirrors.aliyun.com/ubuntu/ focal-updates universe
deb http://mirrors.aliyun.com/ubuntu/ focal multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted
deb http://mirrors.aliyun.com/ubuntu/ focal-security universe
deb http://mirrors.aliyun.com/ubuntu/ focal-security multiverse保存退出,然后执行以下命令
sudo apt update
sudo apt upgrade
至此,国内镜像已经配置好了。
由于编译jdk N版本需要JDK N-1版本作为boot版本,我们开始下载和配置jdk11以及环境变量
首先执行
sudo apt get install open-11-jdk
等待下载好一般默认下载路径
/usr/lib/jvm/java-11-openjdk-amd64
开始配置环境变量,输入命令:
sudo vim ~/.bashrc
在最下方输入如下:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
export CLASSPATH=${JAVA_HOME}/lib
export PATH=\({JAVA_HOME}/bin:\)PATH
更新环境变量
source ~/.bashrc
准备安装gcc7和g++7,我经过测试,gcc4和gcc9都是不行的。
sudo apt install gcc-7 g++-7
需要对gcc和g++进行更换软连接
sudo rm -r gcc
sudo rm -r g++
sudo ln -s /usr/bin/gcc-7 gcc
sudo ln -s /usr/bin/g++-7 g++
检测gcc和g++版本
gcc -v
g++ -v
开始下载jdk12源码,在官网下好之后,在linux中建立一个文件夹,把windows下载好的jdk12源码辅助到WSL中.例如我已经下载到C盘下:
cp /mnt/c/OpenJDK12-master.zip /home/heiye/jdk12_src
然后解压
unzip OpenJDK12-master.zip
解压完后,进入解压后的目录下,由于环境是WSL环境,以及在编译过程中可能会有警告而被高版本gcc当做错误而停止编译,我们输入:
bash configure --enable-debug --with-jvm-variants=server
然后会有一大堆的提示,说缺少很多依赖库,这时候我们需要根据提示来下载这些依赖,例如
sudo apt-get install libfreetype6-dev
sudo apt-get install libcups2-dev
sudo apt-get install libx11-dev libxext-dev libxrender-dev libxrandr-dev libxtst-dev libxt-dev
sudo apt-get install libasound2-dev
sudo apt-get install libffi-dev
sudo apt-get install autoconf
直到出现
说明环境已经准备好了,开始编译
make all
由于编译时间很长,需要耐心等待
当出现如下就代表编译成功
进去测试一下:可以看出java版本。
Windows10通过WSL编译jdk12的更多相关文章
- windows10 qt5 mingw32编译cryptopp563
windows10 qt5 mingw32编译cryptopp563 参考链接: http://www.qtcentre.org/threads/28809-Compiling-amp-using-C ...
- Windows10 VS2017 C++编译Linux程序
#include <cstdio> #include <iostream> #include "unistd.h" using namespace std; ...
- Windows10 与 WSL(Ubuntu)的文件互访
从WSL访问win10的文件 > cd /mnt 从win10访问WSL的文件 打开Ubuntu > explorer.exe . (后面的点不要漏掉)
- windows10源码编译llvm
准备 cmake, 我目前使用的版本是3.18 llvm 源码, 我下载的是 11.0 我已经具备Vs2015和Vs2017的开发环境. debug模式编译需要较多内存和较多硬盘存储空间. (debu ...
- navicat连接登录windows10本地wsl的数据库
1.修改MySql的配置文件 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 将找到 bind-address = 127.0.0.1 并注释掉 → # bin ...
- javac编译后运行提示找不到或无法加载主类
第一种常见错误: package demo_01; public class hello { public static void main(String[] args) { System.out.p ...
- Leon-ai on WSL
这几天尝试了下Windows10的WSL,的确是良心产品,虽然还有很多待改进的地方(比如iptabeles之类的功能还未支持). 使用了WSL就避免安装双系统的繁琐,节省很多时间,而且因为是微软自家产 ...
- CMakeFiles/species.inc.dir/build.make:57: recipe for target 'CMakeFiles/species.inc' failed
新装的WSL编译2017.3.4版本的mfix,只要涉及到带化学反应的就会报错: 由于之前从没遇到过,对cmake又不熟悉,所以有些摸不着头脑,后来仔细查看报错提示,发现是在CMakeFiles/sp ...
- Windows10 WSL下 龙芯3A 交叉编译环境搭建
记个流水账避免事后忘记怎么搭建的 - - 环境 Key Value 系统 Windows10 WSL系统 Ubuntu 下载工具链 http://www.loongnix.org/index.php/ ...
随机推荐
- 【java虚拟机】Java内存模型
作者:平凡希 原文地址:https://www.cnblogs.com/xiaoxi/p/7518259.html 一.什么是Java内存模型 Java虚拟机规范中试图定义一种Java内存模型(Jav ...
- eh-admin一套前后端一体的轻量级后台管理系统
https://gitee.com/DawnYang/eh-admin 主要技术 后端技术:Spring Boot,Apache Shiro,MyBatis-Plus等: 前端技术:Jquery,La ...
- C# - 音乐小闹钟_BetaV1.0
时间:2017-11-20 作者:byzqy 介绍: 前段时间看到别人利用Timer控件实现了检查电脑本地时间,然后对时间进行比较,最终实现闹钟功能.感觉有点意思,于是自己也做了一个小闹钟! 先看一下 ...
- php常用的函数
addslashes: 字符串加入斜线.bin2hex: 二进位转成十六进位.chop: 去除连续空白.chr: 返回序数值的字符.chunk_split: 将字符串分成小段.convert_cyr_ ...
- 前端axios请求二进制数据流转换生成PDF文件空白问题(终极解决方案)
本文章共1570字,预计阅读时间1 - 3分钟. 问题场景: axios请求二进制数据转换生成PDF空白问题,使用axios请求后端接口,后端返回的二进制流文件,需要转换成PDF,但是在postman ...
- 谷歌api 二维码生成 实例
谷歌提供的二维码生成器接口,非常实用!分享给大家 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" ...
- BUUCTF-[CISCN2019 总决赛 Day2 Web1]Easyweb
BUUCTF-[CISCN2019 总决赛 Day2 Web1]Easyweb 就给了一个这个... 先打上robots.txt看看 发现有源码备份,但不是index.php.bak... 看源码发现 ...
- MySQL密码重置方法
MySQL数据库的安装和配置,配置Mysql按照bin目录到Path中 使用命令行窗口连接MYSQL数据库:mysql –u用户名 –p密码 对于密码的重置有以下两种方法(卸载重新安装当然也可以): ...
- JavaScript高级程序设计读书笔记之JSON
JSON(JavaScript Object Notation)JavaScript对象表示法.JSON是JavaScript的一个严格的子集,利用了JavaScript中的一些模式来表示结构化数据. ...
- springcloud3(五) spring cloud gateway动态路由的四类实现方式
写这篇博客主要是为了汇总下动态路由的多种实现方式,没有好坏之分,任何的方案都是依赖业务场景需求的,现在网上实现方式主要有: 基于Nacos, 基于数据库(PosgreSQL/Redis), 基于Mem ...