• >
  • LIBMod
  • >
  • [LJF]Legacy Java Fixer
[LJF]Legacy Java Fixer
模组属性评比

距离显示结果还剩5票~

路过的这位少侠,你觉得这款Mod怎么样,可否愿意来评一评它呢?登录并评比
更新日志
  • 暂无日志..

历史编辑记录更多
    管理组

      暂无管理组..

    编辑组

      暂无编辑组..

    开发组申请

      暂无开发组..

    停更
    开源
    [LJF]

    Legacy Java Fixer

    0.0

    无人问津

    昨日指数: 8
    昨日平均指数: 62.403

    1.18万

    总浏览

    --

    资料填充率


    下载本模组
    • 简介

      本模组修复了 Forge 1.6.1 ~ 1.7.2 版本无法使用 1.8.0_20 以上版本的 Java 启动游戏的问题。

      该问题在 1.8 及以上版本的游戏中不复存在。对于 1.7.10,请使用版本在 1.7.10-10.13.1.1217 或以上的 Forge。

      适用范围

      如果你使用了高于 8u20 版本的 Java 并发生了如下崩溃,那么你可以通过安装这个模组来修复问题:

      [00:00:00] [main/ERROR]: Unable to launch
      java.util.ConcurrentModificationException
          at java.util.ArrayList$Itr.checkForComodification(ArrayList.java:911) ~[?:1.8.0_412]
          at java.util.ArrayList$Itr.remove(ArrayList.java:875) ~[?:1.8.0_412]
          at net.minecraft.launchwrapper.Launch.launch(Launch.java:117) [launchwrapper-1.9.jar:?]
          at net.minecraft.launchwrapper.Launch.main(Launch.java:28) [launchwrapper-1.9.jar:?]

      作为另一种修复策略,你可以降低 Java 版本,但如果你使用低于这个版本的 Java(如 Java 7、Java 8u11 等)启动游戏,请不要安装这个模组——这同样会引起游戏崩溃(和狼人杀里被刀同守同救仍然会倒牌一样的道理)

      原理

      Java 8u20 修改了 Collections.sort 的实现方法,不再统一使用数组缓冲,排序后重新赋值,而是委托到每个 List 实现的 sort 函数中执行——这一修改虽然兼容了曾经不能使用该函数排序的 CopyOnWriteArrayList 容器,但因为 ArrayList 等容器的 sort 方法会修改容器的 modCount 结构性修改计数器,使得在容器被迭代的过程中,调用该方法排序会抛出并发修改异常(Java 开发岗必背八股)

      本模组将 Java 8u20 以前的使用数组缓冲的排序方法封装成最高优先级的 tweaker,替换掉 FML 的直接调用 Collections.sort 的 tweaker,从而在保证正确性的前提下避免了并发修改异常的抛出。

    短评加载中..