广告
返回顶部
首页 > 资讯 > 操作系统 >linux中如何实现jdk随时切换版本
  • 361
分享到

linux中如何实现jdk随时切换版本

2023-06-12 21:06:08 361人浏览 安东尼
摘要

小编给大家分享一下linux中如何实现jdk随时切换版本,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!项目处理问题遇到如下情况,引用第三方的jar包报出Class

小编给大家分享一下linux中如何实现jdk随时切换版本,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

项目处理问题遇到如下情况,引用第三方的jar包报出ClassDefNotFoundException错误导致app崩溃,双方沟通确认该类存在且排除工程未clean,代码混淆导致等原因。

注意到编译app的时候提示了很多如下与正常情况下不一样的信息:

trouble processing:
bad class file magic (cafebabe) or version (0033.0000)
...while parsing com/baidu/mapapi/SDKInitializer.class
...while processing com/baidu/mapapi/SDKInitializer.class
279 warnings
SDKInitializer正是ClassDefNotFoundException报错的类。
百度搜索出现这个编译提示找到了问题出现的原因:第三方公司打包这个jar包使用的jdk1.7版本(大于1.6),而我们编译app使用的是1.6版本,由于编译出的字节码版本不一致,导致无法转换成Android虚拟机刻度的字节码,因此引用的jar包实际并未编译到当前apk中,程序运行的时候当然就找不到相应的类了。
公司编译服务器实际上配置了多个jdk版本,而且android编译是在设置环境变量的时候设置的jdk版本。编译android4.4使用的是jdk1.6,而编译android5.0则使用的是jdk1.7,这就涉及到了如何随时切换jdk版本。
先来看看如何设置jdk环境变量,百度搜索得到的答案多是修改~/.bashrc或修改/etc/profile文件一次性完成配置。我用vi打开这两个文件并未找到相应的jdk环境变量,但是使用java -version确实能看到默认的jdk版本。这就有了疑问,当前默认jdk软件的环境变量是在哪里配置的?
使用 which java 命令找到当前java可执行程序的位置
fordreamxin@compiler207:~$ which java
/usr/bin/java
 /usr/bin/目录下存放的多是用户安装的软件

fordreamxin@compiler207:~$ ll /usr/bin/java
lrwxrwxrwx 1 root root 22 Nov 13 06:18 /usr/bin/java -> /etc/alternatives/java*

alternatives是一个linux下的多版本管理软件,利用它就可以实现jdk的版本切换,这点稍后再描述。先来alternatives目录地下看看有些什么东西。

fordreamxin@compiler207:/etc/alternatives$ ls java*
java  java.1.gz  javac  javac.1.gz  javadoc  javadoc.1.gz  javah  javah.1.gz  javap  javap.1.gz  java_vm  javaws  javaws.1.gz
fordreamxin@compiler207:/etc/alternatives$ ll java
lrwxrwxrwx 1 root root 36 Nov 13 06:17 java -> /usr/lib/JVM/java-6-sun/jre/bin/java*

原来该目录下放置了很多软件的版本引用,从这里可以找到当前软件版本(jdk)的实际位置

fordreamxin@compiler207:/etc/alternatives$ ls /usr/lib/jvm/
java-1.7.0-openjdk-amd64  java-6-sun  java-6-sun-1.6.0.26  java-7-openjdk-amd64
在/usr/lib/jvm文件夹下时间存储了各个jdk版本的软件,而alternatives正是通过修改它的java引用达到版本切换的目的。
使用alternatives实现版本切换的方法如下:

1. 查看相应的jdk是否在 ubuntu的jdk菜单里,查看:
update-alternatives --config java
update-alternatives --config javac

2.如果没有在菜单里可以如下方式添加:
update-alternatives --install /usr/bin/java java /usr/lib/jvm/java/jdk1.6.0_12/bin/java 300
update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/java/jdk1.6.0_12/bin/javac 300
 注意:jdk1.6.0_12 版本不同会有变动

3.sudo update-alternatives --config java
sudo update-alternatives --config javac
选择序号,回车即可;
4.然后java -version,javac -version查看当前jdk版本

但是使用alternatives需要sudo超级权限,也就是说这种切换是一种全局切换,同修改~/.bashrc或/etc/profile一样,一次操作,全局有效。如果没有超级权限怎么办?

设置环境变量linux提供了export命令,该命令的修改只对当前终端有效。

fordreamxin@compiler207:/$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
上面的命令显示了当前的环境变量,也就是~/.bashrc或/etc/profile文件的内容,它表示了当前所有能够全局使用的所有软件或命令的环境变量,没有这些变量,我们不能在任意目录下使用很多命令或软件,这也是环境变量的意义所在。
通过如下命令可以在$PATH的开始或末尾添加jdk的环境变量(bin目录下保存了java, javac, javah等可执行命令)

export PATH="/usr/lib/jvm/java-7-openjdk-amd64/bin":$PATH

export PATH="$PATH:/usr/lib/jvm/java-7-openjdk-amd64/bin/"
由于执行的时候总是从$PATH的开始搜索可执行文件的位置,所以如果环境变量中已经设置了一个jdk,那么把新的jdk设置在PATH的开始才会有用。

以上是“linux中如何实现jdk随时切换版本”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网操作系统频道!

--结束END--

本文标题: linux中如何实现jdk随时切换版本

本文链接: https://www.lsjlt.com/news/262877.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • linux中如何实现jdk随时切换版本
    小编给大家分享一下linux中如何实现jdk随时切换版本,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!项目处理问题遇到如下情况,引用第三方的jar包报出Class...
    99+
    2023-06-12
  • Win10怎么同时安装两个版本的JDK并随时切换
    本篇内容主要讲解“Win10怎么同时安装两个版本的JDK并随时切换”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Win10怎么同时安装两个版本的JDK并随时切换”吧!一,官网下载两个版本的JDK...
    99+
    2023-07-05
  • jdk如何实现不同版本切换windows
    jdk如何实现不同版本切换windows,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。在实际开发中,可能会碰到不同项目需要利用不同jdk版本进行开发,这时候就需要我们安装不同j...
    99+
    2023-06-05
  • IDEA项目如何切换JDK版本
        本文已收录于专栏 《总结分享》 目录 背景介绍 概念说明 更换好处 更换步骤 1.点击File中的Project Structure这个选项 2.点击SDKs按钮 3.点击“+”按钮,然后点击Add JDK来添加新安装的jdk 4...
    99+
    2023-10-05
    intellij-idea java intellij idea
  • 聊聊如何随意切换Python版本
    前言不知道大家在日常开发工作中是否遇到过这样一个情况:项目A用的是Python 2.7版本开发的(可能由于历史遗留问题没有升级更新版本)项目B是用Python 3.10.4版本开发的,假设使用了requests==2.25.1版本项目C是用...
    99+
    2023-05-14
    Python pyenv 解释器
  • 手把手教学Win10同时安装两个版本的JDK并随时切换(JDK8和JDK11)
    目录一,官网下载两个版本的JDK1 ,JDK8下载,点击红色框框2,JDK11下载,点击红色框框二,分别安装两个版本的JDK三,JDK的环境配置以及如何切换不同版本的两个JDK四,总...
    99+
    2023-03-19
    装了两个jdk怎么切换 安装多个jdk怎么切换 更换jdk版本
  • Win10同时安装两个版本的JDK并随时切换,JDK8和JDK11手把手教学
    若是只需要知道如何切换两个JDK的同学,可以直接移步至第三部分 一,官网下载两个版本的JDK 官网下载地址:Java Downloads | Oracle 我们找到JDK8和JDK11的位置,这里我们都选择x64的版本下载,如图所示, 当我...
    99+
    2023-09-06
    java 开发语言 oracle jvm
  • 电脑上安装多个JDK版本时如何自由切换
    文章目录 前言一、安装JDK二、设置系统变量2.1 设置JAVA_HOME2.1.1 添加JAVA_HOME+VERSION 2.2 设置Path2.2.1 添加Path 三、...
    99+
    2023-09-13
    java jdk
  • php如何实现版本切换
    小编给大家分享一下php如何实现版本切换,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!以下为现有php业务,代码上线方式。实现:...
    99+
    2022-10-19
  • m1 Mac设置多jdk版本并动态切换的实现
    由于公司项目基于 JDK 1.8,我本地默认安装的是 JDK 10,这样在 idea 中通过 maven 编译的时候各种报错,有点不兼容。为了解决这个问题最好的办法就是再安装一个 1...
    99+
    2022-11-12
  • 如何在linux中切换php版本,注意是linux
    在Linux中切换PHP版本可以使用以下步骤: 安装多个PHP版本 在Linux中,可以使用不同的方式安装多个PHP版本,例如使用apt-get或yum安装不同的PHP版本。安装完成后,可以通过以下命令查看已安装的PHP版本: $ sudo...
    99+
    2023-09-06
    php linux apache
  • linux系统,有多个cuda,如何切换版本
    如果您的系统上安装了多个CUDA版本,您可以使用以下命令来切换CUDA版本: 首先,使用以下命令列出所有已安装的CUDA版本: ls /usr/local | grep cuda 这将显示所有已安装的CUDA版本的目录。 接下来,使用以...
    99+
    2023-09-21
    linux 运维 服务器
  • linux如何安装多个版本php并切换
    今天小编给大家分享一下linux如何安装多个版本php并切换的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。安装Apache ...
    99+
    2023-07-06
  • Linux 中如何切换相同程序的不同版本
    几天前,我们曾经讨论如何 如何在不同的 php 版本之间进行切换 。在那篇文章中,我们使用 update-alternatives 命令实现从一个 PHP 版本切换到另一个 PHP 版本。也就是说, update-alt...
    99+
    2022-06-04
    linux 切换程序版本 linux 切换版本
  • 【丐版JDK管理工具-Daen-JDKMAN-V1.0】Python实现JDK多版本切换管理工具V1.0,已打包成EXE
    🧑‍💻作者名称:DaenCode 🎤作者简介:CSDN实力新星,后端开发两年经验,曾担任甲方技术代表,业余独自创办智源恩创网络科技工作室。会点点Ja...
    99+
    2023-09-26
    java python 开发语言
  • java中如何实现指定jdk的版本
    本篇文章为大家展示了java中如何实现指定jdk的版本,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。java 指定某个jdk版本方法指定某个jdk版本方法背景:当我们在同一台机器上运行多个Java程...
    99+
    2023-05-31
    java jdk版本 ava
  • 【Python】Windows如何在cmd中切换python版本
    相信很多小伙伴都会有像我一样经历,在windows中装了很多python版本,那么如果我们正式使用的时候应该如何切换呢? 【方法一】从环境变量中切换python第一步: 打开环境变量第二步:打...
    99+
    2023-09-07
    python windows 开发语言
  • vue如何实现滚动tab跟随切换效果
    这篇文章给大家分享的是有关vue如何实现滚动tab跟随切换效果的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。分享一个我前几天做的移动端 tab滚动跟随的例子随着滚动条的滚动,ta...
    99+
    2022-10-19
  • 如何实现Java JDK的多版本共存
    学习Java最一开始就是需要做环境配置啦,安装JDK是必不可少的。大家都知道JDK是Java开发者工具包,那么一般来说要选择什么样的版本来安装呢?可以安装多个JDK吗?是否可以我随时想切换哪个JDK就使用哪个呢? 下面我会主要说明如何实现J...
    99+
    2023-09-22
    java jvm 开发语言
  • html5如何实现点击切换文本
    这篇文章主要为大家展示了“html5如何实现点击切换文本”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“html5如何实现点击切换文本”这篇文章吧。 ...
    99+
    2022-10-19
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作