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. CSS3-03 样式 2

    前言 在上一篇的博客中,阐述了 CSS 盒模型中的 Margin.Border.Padding 三个样式.但是总觉得,这些东西好像是 HTML 元素的包装样式,真正的要点是 HTML 元素(即:盒模型 ...

  2. 通过VLD扩展分析PHP opcode

    安装VLD扩展 ./configure --with-php-config=/usr/local/php/bin/php-config --enable-vld 生成脚本opcode   > p ...

  3. ORA-19502: write error on file "xxxxx", block number xxxx

    错误现象: 在ORACLE 10g下为表空间IGNITE_EGVSQL01增加数据文件时,报如下错误: SQL> ALTER TABLESPACE IGNITE_EGVSQL01      AD ...

  4. Unable to determine if the owner (Domain\UserName) of job JOB_NAME has server access

    早上巡检的的时候,发现一数据库的作业报如下错误(作业名等敏感信息已经替换),该作业的OWNER为一个域账号: JOB RUN: 'JOB_NAME' was run on 2016-6-1 at 7: ...

  5. ORA-02292: integrity constraint (xxxx) violated - child record found

    在更新表的主键字段或DELETE数据时,如果遇到ORA-02292: integrity constraint (xxxx) violated - child record found 这个是因为主外 ...

  6. Conquer and Divide经典例子之Strassen算法解决大型矩阵的相乘

    在通过汉诺塔问题理解递归的精髓中我讲解了怎么把一个复杂的问题一步步recursively划分了成简单显而易见的小问题.其实这个解决问题的思路就是算法中常用的divide and conquer, 这篇 ...

  7. .net core 用grpc实现微服务

    GRPC 是Google发布的一个开源.高性能.通用RPC(Remote Procedure Call)框架.提供跨语言.跨平台支持.以下以.NET Core 使用控制台.docker中演示如何使用G ...

  8. android 获取应用的当前版本号&获取当前android系统的版本号

    (转自:http://www.cnblogs.com/qsl568/archive/2012/03/14/2395636.html) 获取当前应用的版本号: private String getVer ...

  9. IP分片重组的分析和常见碎片攻击 v0.2

    IP分片重组的分析和常见碎片攻击 v0.2http://www.nsfocus.net/index.php?act=magazine&do=view&mid=584 作者:yawl ( ...

  10. ubuntu中chromium无法播放flash,安装flash

    ubuntu14.0.4中系统自带的chromium无法播放flash,后来查了下,得知chromium已经不支持adobe flash了,用户可使用pepper flash替代.安装pepper f ...