V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
muller
V2EX  ›  问与答

有人试过在一个 pc 上同时安装 java7 和 java8 吗

  •  
  •   muller · 2016-06-30 11:26:57 +08:00 · 8085 次点击
    这是一个创建于 2850 天前的主题,其中的信息可能已经有所发展或是发生改变。

    现在学习函数编程 需要 java8 ,但是公司项目又在 java7 上,主要是环境变量 没有想明白

    25 条回复    2016-07-06 11:54:51 +08:00
    FanError
        1
    FanError  
       2016-06-30 11:30:32 +08:00   ❤️ 1
    随便从另外的机器上复制 jdk8 和 jdk7 的目录到本机。
    要学习时设 j8 的环境变量,要工作时换为 jdk7 的环境变量。
    airycanon
        2
    airycanon  
       2016-06-30 11:37:54 +08:00
    分别安装到不同的目录,用哪个版本就把环境变量指向该版本,最好写个切换的脚本。
    另外,我使用过程中发现,即使修改了,有些软件仍然读取修改前的值,猜测是它把环境变量的值保存到自己的配置文件中了,这种情况让我最终放弃了。
    yangxiongwei
        3
    yangxiongwei  
       2016-06-30 11:39:39 +08:00
    装 jdk8 ,在需要 jdk7 的工程, ide 里面设置一下语法级别就行。
    novaeye
        4
    novaeye  
       2016-06-30 11:47:29 +08:00
    有什么问题呢? 我的笔记本上 56789 各装一个
    SpicyCat
        5
    SpicyCat  
       2016-06-30 12:29:02 +08:00   ❤️ 1
    说下你的操作系统啊。
    Eclipse 和 IntelliJ IDEA 可以设置 JDK 。
    Ubuntu , Arch 等操作系统提供了切换 JDK 版本的方法。
    Owenjia
        6
    Owenjia  
       2016-06-30 12:30:15 +08:00
    操作系统是?
    Gentoo 的话可以用 eselect 随时切换,很方便。
    jade88
        7
    jade88  
       2016-06-30 13:20:10 +08:00
    装个 jdk8 ,在项目里设置编译级别就可以了
    birdccc
        8
    birdccc  
       2016-06-30 13:27:16 +08:00
    上次刚装了 jdk8 , 其实我理解本地开发其实和环境变量感觉没关系, 在 IDE 中设置好哪个引用就好了吧, 然后装了 jdk8 貌似需要复制一些什么东西
    wohenyingyu01
        9
    wohenyingyu01  
       2016-06-30 13:47:43 +08:00
    jdk 装 7 和 8 , jre 装 8 就行了
    SoloCompany
        10
    SoloCompany  
       2016-07-01 00:47:25 +08:00
    才两个 JDK 算啥,我们配开发环境都建议配置至少三个 JDK 的
    为了节省时间,直接从服务器拖下来本地就可以了
    muller
        11
    muller  
    OP
       2016-07-01 11:47:29 +08:00
    @SoloCompany 什么公司,你们的什么业务需要竟然三个版本的 JDK
    muller
        12
    muller  
    OP
       2016-07-01 11:48:55 +08:00
    @jade88 你这种方式可以尝试,在 eclipse IDEA 中可以设置 编译的 jdk 版本,也不错, jdk 向下兼容,那么只装 jdk8 就可以
    muller
        13
    muller  
    OP
       2016-07-01 11:49:21 +08:00
    @novaeye 这么多,我想问 ,你是如何切换的呢
    muller
        14
    muller  
    OP
       2016-07-01 11:50:01 +08:00
    @yangxiongwei 这个语法级别是什么,是编译版本吗
    muller
        15
    muller  
    OP
       2016-07-01 11:50:32 +08:00
    @FanError 这个有点麻烦,需要手工操作,
    muller
        16
    muller  
    OP
       2016-07-01 11:52:03 +08:00
    @airycanon 你说的这个问题我也注意到了,我想 能不能直接在环境变量上同时设定两个版本的 jdk 编译运行路径,不需要切换,可是只有一个 JAVA_HOME 一个 PATH
    muller
        17
    muller  
    OP
       2016-07-01 11:52:31 +08:00
    @Owenjia 没有用过这个,主要还是 centos 7
    novaeye
        18
    novaeye  
       2016-07-01 13:27:46 +08:00
    @muller 对于主流 IDE(eclipse/IDEA/netbeans)来说, 都支持为工程指定使用特定的 JDK 版本, 因此"怎么切换的"这个问题也就不存在了, 所以其实只要在系统 PATH 里配置一个 JRE 用于执行 JAVA 应用, 然后在 IDE 里配置多个 JDK 版本然后为不同的工程指定不同的 JDK 版本就行了.

    简单点说就是, 系统变量中配置的 java.exe 并不等于 IDE 中某个工程所使用的 JDK, IDE 也不可能蠢到这种程度. 只不过是通常会做为默认值而已.
    yangxiongwei
        19
    yangxiongwei  
       2016-07-01 13:57:50 +08:00
    @muller Project Structure->Modules->Sources->Language level
    muller
        20
    muller  
    OP
       2016-07-01 14:20:24 +08:00
    @yangxiongwei 非常感谢
    muller
        21
    muller  
    OP
       2016-07-01 14:20:59 +08:00
    @novaeye 解决了我的一个因为懒惰引起的小问题
    muller
        22
    muller  
    OP
       2016-07-01 17:06:39 +08:00
    @yangxiongwei 这个语言级别 好像不是 eclipse 吧,我没有找到诶
    yangxiongwei
        23
    yangxiongwei  
       2016-07-01 17:17:41 +08:00
    @muller 是 IDEA , Eclipse 太久没用,不太清楚。
    SoloCompany
        24
    SoloCompany  
       2016-07-05 01:56:25 +08:00   ❤️ 1
    @muller 其实这完全没什么值得说的,你没有维护过一个产品的多个版本,没有编写过库需要要求兼容低版本 jre 的,会觉得 3 个 jdk 很多,其实一点也不多
    muller
        25
    muller  
    OP
       2016-07-06 11:54:51 +08:00
    @SoloCompany 那这多个版本共存 切换 同时运行是如何做到的呢
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2793 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 13:02 · PVG 21:02 · LAX 06:02 · JFK 09:02
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.