Windows使用WSL编译OpenJDK

  1. 安装Ubuntu以及配置国内镜像

  2. 由于编译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

  3. 准备安装gcc7和g++7,我经过测试,gcc4和gcc9都是不行的。

    sudo apt install gcc-7 g++-7

  4. 需要对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++

  5. 检测gcc和g++版本

    gcc -v

    g++ -v

  6. 开始下载jdk12源码,在官网下好之后,在linux中建立一个文件夹,把windows下载好的jdk12源码辅助到WSL中.例如我已经下载到C盘下:

    cp /mnt/c/OpenJDK12-master.zip /home/heiye/jdk12_src

  7. 然后解压

    unzip OpenJDK12-master.zip

  8. 解压完后,进入解压后的目录下,由于环境是WSL环境,以及在编译过程中可能会有警告而被高版本gcc当做错误而停止编译,我们输入:

    bash configure --enable-debug --with-jvm-variants=server

  9. 然后会有一大堆的提示,说缺少很多依赖库,这时候我们需要根据提示来下载这些依赖,例如

    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

  10. 直到出现

  11. 说明环境已经准备好了,开始编译

    make all

  12. 由于编译时间很长,需要耐心等待

  13. 当出现如下就代表编译成功

  14. 进去测试一下:可以看出java版本。

Windows10通过WSL编译jdk12的更多相关文章

  1. windows10 qt5 mingw32编译cryptopp563

    windows10 qt5 mingw32编译cryptopp563 参考链接: http://www.qtcentre.org/threads/28809-Compiling-amp-using-C ...

  2. Windows10 VS2017 C++编译Linux程序

    #include <cstdio> #include <iostream> #include "unistd.h" using namespace std; ...

  3. Windows10 与 WSL(Ubuntu)的文件互访

    从WSL访问win10的文件 > cd /mnt 从win10访问WSL的文件 打开Ubuntu > explorer.exe . (后面的点不要漏掉)

  4. windows10源码编译llvm

    准备 cmake, 我目前使用的版本是3.18 llvm 源码, 我下载的是 11.0 我已经具备Vs2015和Vs2017的开发环境. debug模式编译需要较多内存和较多硬盘存储空间. (debu ...

  5. navicat连接登录windows10本地wsl的数据库

    1.修改MySql的配置文件 sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf 将找到 bind-address = 127.0.0.1 并注释掉 → # bin ...

  6. javac编译后运行提示找不到或无法加载主类

    第一种常见错误: package demo_01; public class hello { public static void main(String[] args) { System.out.p ...

  7. Leon-ai on WSL

    这几天尝试了下Windows10的WSL,的确是良心产品,虽然还有很多待改进的地方(比如iptabeles之类的功能还未支持). 使用了WSL就避免安装双系统的繁琐,节省很多时间,而且因为是微软自家产 ...

  8. CMakeFiles/species.inc.dir/build.make:57: recipe for target 'CMakeFiles/species.inc' failed

    新装的WSL编译2017.3.4版本的mfix,只要涉及到带化学反应的就会报错: 由于之前从没遇到过,对cmake又不熟悉,所以有些摸不着头脑,后来仔细查看报错提示,发现是在CMakeFiles/sp ...

  9. Windows10 WSL下 龙芯3A 交叉编译环境搭建

    记个流水账避免事后忘记怎么搭建的 - - 环境 Key Value 系统 Windows10 WSL系统 Ubuntu 下载工具链 http://www.loongnix.org/index.php/ ...

随机推荐

  1. 狂神说SpringBoot02:运行原理初探

    狂神说SpringBoot系列连载课程,通俗易懂,基于SpringBoot2.2.5版本,欢迎各位狂粉转发关注学习. 微信公众号:狂神说(首发)    Bilibili:狂神说Java(视频) 未经作 ...

  2. 编译ffmpeg(第一次),实现JPG转MP4

    ffpmeg网址:http://ffmpeg.org/ ffmpegapi文档:http://ffmpeg.org/doxygen/trunk/index.html 因为这是JPG转MP4,所以不涉及 ...

  3. 前端 | 页面触底自动加载 Vue 组件

    不管是 web 端还是移动端,信息流都是现在很流行的信息展示方式.信息流经常搭配自动加载一起使用以获得更好的使用体验. 最近在使用 Vue 开发过程中也遇到了首页信息流自动加载的需求.大致了解了一下几 ...

  4. 备忘录——C#获取微信小程序的云数据库中数据

    目录 0. 背景说明 0.2 获取AccessToken 0.3 数据库查询 0.4 文件下载 2. 简单的封装 3. 简单测试 4. 参考文档 shanzm-2021年8月17日 17:14:24 ...

  5. 你的域名是如何变成 IP 地址的?

    我的 个人网站 上线了,上面可以更好的检索历史文章,并且可以对文章进行留言,欢迎大家访问 可能大家都知道或者被问过一个问题,那就是很经典的「从浏览器输入 URL 再到页面展示,都发生了什么」.这个问题 ...

  6. CentOS 7.3安装Zabbix3.2

    一.ZABBIX概述 Zabbix是一个基于Web界面的分布式系统监控的企业级开源软件.可以监视各种系统与设备的参数,保障服务器及设备的安全运营.   Zabbix的功能和特性: 1.安装与配置简单: ...

  7. 致敬mentohust,路由器使用Socket认证华科校园网

    致敬mentohust,路由器使用Socket认证华科校园网 前言: 上一篇文章中,为了解决ESP32华科无线网认证的问题,我成功把网页认证机制用Python+Socket复现.但痛点依然存在,无线网 ...

  8. [考试总结]noip模拟43

    这个题目出的还是很偷懒.... 第一题...第二题...第三题...四.... 好吧... 这几次考得都有些问题,似乎可能是有些疲惫,脑袋也是转不太动,考完总觉得自己是能力的问题,但是改一分钟之后会发 ...

  9. ELK学习之Logstash篇

    Logstash在ELK这一整套解决方案中作为数据采集终端,支持对接Kafka.数据库(MySQL.Oracle).文件等等. 而在Logstash内部的数据流转,主要经过三个环节:input -&g ...

  10. C# Dapper基本三层架构使用 (二、Model)

    我们将数据存放在数据库中,数据表的结构,我们通常会用一个类来抽象,表的属性就是类的属性,我们通常将表的一行存储在一个类中. 在Java中,通常将其称为实体类Entity,在C#中,通常将其称为Mode ...