Java官方的Logger.getGlobal().info无效

  • 无效代码
Logger.getGlobal().info("start");
  • 解决方案(三选一):
Logger.getLogger("global").setLevel(Level.INFO)
Logger.getLogger(Logger.GLOBAL_LOGGER_NAME).info("start");
Logger.getLogger("global").info("start");

JAVA线程加载图片挂在 java.awt.MediaTracker.waitForID

  • 问题发生时打印的日志一般如下所示
"AWT-EventQueue-0" prio=10 tid=0x0811e400 nid=0x3d80 in Object.wait() [0xdeb95000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0xe651f1f8> (a java.awt.MediaTracker)
at java.awt.MediaTracker.waitForID(MediaTracker.java:651)
- locked <0xe651f1f8> (a java.awt.MediaTracker)
at javax.swing.ImageIcon.loadImage(ImageIcon.java:264)
- locked <0xe651f1f8> (a java.awt.MediaTracker)
at javax.swing.ImageIcon.<init>(ImageIcon.java:194)
  • 该问题属于JDK Bug,加载图片有较小几率会挂死当前线程。而挂死了UI线程等于整个客户端都完蛋了。
  • 解决该问题的思路:
    • 首先用一个对象当锁。
    • UI线程先启动线程A,然后synchronize锁并wait唤醒,可设超时时间。
    • 线程A加载图片,在工作完成时synchronize锁并notify对象。
  • 这样就算线程A挂死,也不影响UI线程的正常运行。

参考资料

http://bugs.java.com/bugdatabase/view_bug.do?bug_id=6995182

http://bugs.java.com/bugdatabase/view_bug.do?bug_id=4881229

控制台输出Unloading class

  • 问题发生时控制台输出一般如下
[Unloading class sun.reflect.GeneratedMethodAccessor22]
[Unloading class sun.reflect.GeneratedMethodAccessor47]
[Unloading class sun.reflect.GeneratedMethodAccessor24]
[Unloading class sun.reflect.GeneratedSerializationConstructorAccessor6]
[Unloading class sun.reflect.GeneratedMethodAccessor26]
[Unloading class sun.reflect.GeneratedSerializationConstructorAccessor13]
[Unloading class sun.reflect.GeneratedSerializationConstructorAccessor16]
  • 原因可能是程序启动参数里含有-Xloggc

参考资料

http://stackoverflow.com/questions/2833983/meaning-of-the-unloading-class-messages

http://bugs.java.com/bugdatabase/view_bug.do?bug_id=7040410

SSH调用Windows下的Java程序提示版本异常

Error: Registry key 'Software\JavaSoft\Java Runtime Environment'\CurrentVersion'
has value '1.8', but '1.6' is required.
Error: Could not find java.dll
Error: Could not find Java SE Runtime Environment.

解决方案:

  • C:\ProgramData\Oracle\Java\javapathPATH环境变量中去除
  • C:\Windows\System32目录下删除javajavawjavaws
  • 最根本的解决方法是安装JDK的时候不要勾选JRE

参考资料

http://stackoverflow.com/questions/29697543/registry-key-error-java-version-has-value-1-8-but-1-7-is-required

JDK小Bug汇总的更多相关文章

  1. 【PHP ThinkPHP框架】小bug汇总[更新]

    目录结构 1.函数调用 2.绑定select下拉框数据 3.PHP查询功能 4.格式化时间和价钱 5.IF标签比较两个变量 6.eq标签比较两个变量 7.新增信息或者修改信息的自动验证和自动填充 8. ...

  2. 【Asp.Net】小BUG汇总[更新]

    目录结构 1.Dictionary<T>遍历 2.Asp.net网站部署在C盘无法上传下载文件 3.Asp.Net网站发布后远程无法访问 4.GDI+中发生一般性错误 1.Dictiona ...

  3. JDK的小Bug你了解么?

    ​用了这么长时间的JDK了,有没有老铁发现JDK的bug呢?从最早版本的JDK1.2到现在普及开的JDK1.8以来,JAVA经历了这么多年的风风雨雨,依然坚持在一线上,是不是感觉很神奇,但是,有没有多 ...

  4. JDK的一个关于stack的小bug

    在一个项目中,使用了一个java.util.Stack,总所周知,栈是先入后出的,那么遍历其中元素的时候,也应该按照这个顺序遍历才对,但是实际情况确不是,以下是测试代码. Stack stack = ...

  5. 利用Jdk 6260652 Bug解析Arrays.asList

    在java.util.ArrayList源码中: c.toArray might (incorrectly) not return Object[] (see 6260652) 产生疑惑: 附上Jav ...

  6. 程序员实用JDK小工具归纳,工作用得到

    在JDK的安用装目录bin下,有一些有非常实用的小工具,可用于分析JVM初始配置.内存溢出异常等问题,我们接下来将对些常用的工具进行一些说明. JDK小工具简介 在JDK的bin目录下面有一些小工具, ...

  7. 喜提JDK的BUG一枚!多线程的情况下请谨慎使用这个类的stream遍历。

    你好呀,我是歪歪. 前段时间在 RocketMQ 的 ISSUE 里面冲浪的时候,看到一个 pr,虽说是在 RocketMQ 的地盘上发现的,但是这个玩意吧,其实和 RocketMQ 没有任何关系. ...

  8. Chrome出了个小bug:论如何在Chrome下劫持原生只读对象

    Chrome出了个小bug:论如何在Chrome下劫持原生只读对象 概述 众所周知,虽然JavaScript是个很灵活的语言,浏览器里很多原生的方法都可以随意覆盖或者重写,比如alert.但是为了保证 ...

  9. 解决JqueryUI 拖放排序遇到滚动条时有可能无法执行排序的小bug

    前些日子不是在做 使用Jquery-UI实现一次拖拽多个选中的元素操作嘛,在持续完善这个组件时遇到了一个关于拖放排序的bug.今天就着图片和代码重现一下,也顺便告诉大家如何解决这个问题. 首先先上图描 ...

随机推荐

  1. Android中Listview点击item不变颜色以及设置listselector 无效

    Android中Listview点击item不变颜色以及设置listselector 无效 这是同一个问题,Listview中点击item是会变颜色的,因为listview设置了默认的listsele ...

  2. 使用DOTNETZIP过滤并压缩相对目录

    业务要求: 压缩某个文件夹及其子目录 压缩时只压缩指定的文件类型,如cshtml 压缩后保持相对目录   找了很久,没有直接的DEMO,最后尝试通过以下代码完成 示例演示了只压缩cshtml和js,同 ...

  3. jQuery插件库代码分享 - 进阶者系列 - 学习者系列文章

    这些天将原来在网上找的jQuery插件进行了下整理,特此将代码分享出来给大家. 见下图结构. 对目录结构进行了分类.这里是插件列表. 这里总共收集了20来个插件.还有下面未进行划分的. 下面是DEMO ...

  4. [MySQL] Buffer Pool Adaptive Flush

    Buffer Pool Adaptive Flush 在MySQL的帮助文档中Tuning InnoDB Buffer Pool Flushing提到, innodb_adaptive_flushin ...

  5. 从AdventureWorks学习数据库建模——保留历史数据

    在业务需求中,经常需要我们在系统中能够记录历史信息,能够查看到历史变动情况,这时我们可以通过增加开始结束时间字段来记录数据的历史版本.对数据的历史记录主要分为:关系.属性历史,实体历史和变更历史. 关 ...

  6. Mysql存储过程和函数区别介绍

    存储过程是用户定义的一系列sql语句的集合,涉及特定表或其它对象的任务,用户可以调用存储过程,而函数通常是数据库已定义的方法,它接收参数并返回某种类型的值并且不涉及特定用户表. 存储过程和函数存在以下 ...

  7. MongoDB学习笔记~为IMongoRepository接口更新指定字段

    回到目录 对于MongoDB来说,它的更新建议是对指定字段来说的,即不是把对象里的所有字段都进行update,而是按需去更新,这在性能上是最优的,这当然也是非常容易理解的,我们今天要实现的就是这种按需 ...

  8. 廖雪峰python教程的第一个疑问

    函数的参数一节中提到: def add_end(L = []); L.append('END') return L 正常调用add_end时(也就是有参数传入时): >>> add_ ...

  9. 7 COMPELLING REASONS YOU NEED TO START THE BUSINESS YOU’VE ALWAYS WANTED

    原文链接:http://lesseesadvocate.com/7-compelling-reasons-need-start-business-youve-always-wanted/ Don’t ...

  10. c#中对txt文件的读取与写入,针对二维数组

    class Program { ; ; static string[,] str = new string[ROW, COL]; static void Main(string[] args) { R ...