Git Product home page Git Product logo

classviewer's Introduction

ClassViewer

Gitter Build Status

Website: ClassViewer Homepage

ClassViewer v3 is a lightweight Java class file viewer only depends on JDK and JavaFX, it only has a single jar file less than 250k in size, and it can work on JRE 8.

OracleJDK no longer bundles JavaFX releases after OracleJDK 10, you can get the OpenJDK distribution bundled with OpenJFX 22 from here.

ClassViewer v4 is under development, icon by Icons8.

Features

  • Understands class files described by JVMS16
  • Displays parsed class file as tree and hex text
  • The corresponding hex text is highlighted when you select a tree node

Build

Building ClassViewer v4 requires Java 22 (but Java 21 is sufficient at runtime).

./gradlew jar

Run

./gradlew run

Screenshots

Screenshot Screenshot Screenshot Screenshot

Support ClassViewer

ClassViewer is free and open source software, if you want to support its developers, you can make a donation:

Especially thanks

Thanks to PLCT Lab for supporting me.

IntelliJ IDEA logo.

This project is developed using JetBrains IDEA. Thanks to JetBrains for providing me with a free license, which is a strong support for me.

classviewer's People

Contributors

glavo avatar ice1000 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

classviewer's Issues

打开 rt.jar 的时候发生 JavaFX 的线程异常

程序版本

master / 3.0 beta 2

运行环境

  • 操作系统:macOS Sierra 10.12.6
  • JRE 版本:
    java version "1.8.0_51"
    Java(TM) SE Runtime Environment (build 1.8.0_51-b16)
    Java HotSpot(TM) 64-Bit Server VM (build 25.51-b03, mixed mode)

详细描述:

gradle run 之后出现空指针异常:

image

[INFO] Load recent files from file: /Users/liufengkai/.viewer/recentfiles
[INFO] Open file: file:/Users/liufengkai/Desktop/rt.jar
[INFO] Open Class File: jar:file:///Users/liufengkai/Desktop/rt.jar!/apple/applescript/AppleScriptEngine.class
[INFO] Open file: jar:file:///Users/liufengkai/Desktop/rt.jar!/apple/applescript/AppleScriptEngine.class
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
        at com.sun.javafx.scene.control.skin.Utils.getLineHeight(Utils.java:104)
        at com.sun.javafx.scene.control.skin.TextAreaSkin.updateFontMetrics(TextAreaSkin.java:1004)
        at com.sun.javafx.scene.control.skin.TextAreaSkin.<init>(TextAreaSkin.java:502)
        at javafx.scene.control.TextArea.createDefaultSkin(TextArea.java:611)
        at javafx.scene.control.Control.impl_processCSS(Control.java:859)
        at javafx.scene.Parent.impl_processCSS(Parent.java:1269)
        at javafx.scene.Parent.impl_processCSS(Parent.java:1269)
        at javafx.scene.Parent.impl_processCSS(Parent.java:1269)
        at javafx.scene.Parent.impl_processCSS(Parent.java:1269)
        at javafx.scene.control.Control.impl_processCSS(Control.java:862)
        at javafx.scene.Parent.impl_processCSS(Parent.java:1269)
        at javafx.scene.Parent.impl_processCSS(Parent.java:1269)
        at javafx.scene.control.Control.impl_processCSS(Control.java:862)
        at javafx.scene.Parent.impl_processCSS(Parent.java:1269)
        at javafx.scene.Parent.impl_processCSS(Parent.java:1269)
        at javafx.scene.Node.processCSS(Node.java:9035)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Scene.doCSSPass(Scene.java:545)
        at javafx.scene.Scene.access$3600(Scene.java:159)
        at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2392)
        at com.sun.javafx.tk.Toolkit.lambda$runPulse$30(Toolkit.java:314)
        at com.sun.javafx.tk.Toolkit$$Lambda$220/1271852668.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:313)
        at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:340)
        at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:525)
        at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:505)
        at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$400(QuantumToolkit.java:334)
        at com.sun.javafx.tk.quantum.QuantumToolkit$$Lambda$41/122367921.run(Unknown Source)
        at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
        at com.sun.javafx.scene.control.skin.Utils.getLineHeight(Utils.java:104)
        at com.sun.javafx.scene.control.skin.TextAreaSkin.updateFontMetrics(TextAreaSkin.java:1004)
        at com.sun.javafx.scene.control.skin.TextAreaSkin.lambda$addParagraphNode$250(TextAreaSkin.java:730)
        at com.sun.javafx.scene.control.skin.TextAreaSkin$$Lambda$409/724027590.changed(Unknown Source)
        at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:182)
        at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:81)
        at javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(ObjectPropertyBase.java:105)
        at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:112)
        at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:146)
        at javafx.css.StyleableObjectProperty.set(StyleableObjectProperty.java:82)
        at javafx.css.StyleableObjectProperty.applyStyle(StyleableObjectProperty.java:68)
        at javafx.scene.CssStyleHelper.transitionToState(CssStyleHelper.java:774)
        at javafx.scene.Node.impl_processCSS(Node.java:9168)
        at javafx.scene.Parent.impl_processCSS(Parent.java:1269)
        at javafx.scene.Parent.impl_processCSS(Parent.java:1269)
        at javafx.scene.Parent.impl_processCSS(Parent.java:1269)
        at javafx.scene.Parent.impl_processCSS(Parent.java:1269)
        at javafx.scene.Parent.impl_processCSS(Parent.java:1269)
        at javafx.scene.control.Control.impl_processCSS(Control.java:862)
        at javafx.scene.Node.processCSS(Node.java:9035)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Scene.doCSSPass(Scene.java:545)
        at javafx.scene.Scene.access$3600(Scene.java:159)
        at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2392)
        at com.sun.javafx.tk.Toolkit.lambda$runPulse$30(Toolkit.java:314)
        at com.sun.javafx.tk.Toolkit$$Lambda$220/1271852668.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:313)
        at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:340)
        at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:525)
        at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:505)
        at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$400(QuantumToolkit.java:334)
        at com.sun.javafx.tk.quantum.QuantumToolkit$$Lambda$41/122367921.run(Unknown Source)
        at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
        at com.sun.javafx.scene.control.skin.Utils.getLineHeight(Utils.java:104)
        at com.sun.javafx.scene.control.skin.TextAreaSkin.updateFontMetrics(TextAreaSkin.java:1004)
        at com.sun.javafx.scene.control.skin.TextAreaSkin.<init>(TextAreaSkin.java:502)
        at javafx.scene.control.TextArea.createDefaultSkin(TextArea.java:611)
        at javafx.scene.control.Control.impl_processCSS(Control.java:859)
        at javafx.scene.Node.processCSS(Node.java:9035)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Scene.doCSSPass(Scene.java:545)
        at javafx.scene.Scene.access$3600(Scene.java:159)
        at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2392)
        at com.sun.javafx.tk.Toolkit.lambda$runPulse$30(Toolkit.java:314)
        at com.sun.javafx.tk.Toolkit$$Lambda$220/1271852668.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:313)
        at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:340)
        at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:525)
        at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:505)
        at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$400(QuantumToolkit.java:334)
        at com.sun.javafx.tk.quantum.QuantumToolkit$$Lambda$41/122367921.run(Unknown Source)
        at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
        at com.sun.javafx.scene.control.skin.Utils.getLineHeight(Utils.java:104)
        at com.sun.javafx.scene.control.skin.TextAreaSkin.updateFontMetrics(TextAreaSkin.java:1004)
        at com.sun.javafx.scene.control.skin.TextAreaSkin.lambda$addParagraphNode$250(TextAreaSkin.java:730)
        at com.sun.javafx.scene.control.skin.TextAreaSkin$$Lambda$409/724027590.changed(Unknown Source)
        at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:182)
        at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:81)
        at javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(ObjectPropertyBase.java:105)
        at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:112)
        at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:146)
        at javafx.css.StyleableObjectProperty.set(StyleableObjectProperty.java:82)
        at javafx.css.StyleableObjectProperty.applyStyle(StyleableObjectProperty.java:68)
        at javafx.scene.CssStyleHelper.transitionToState(CssStyleHelper.java:774)
        at javafx.scene.Node.impl_processCSS(Node.java:9168)
        at javafx.scene.Parent.impl_processCSS(Parent.java:1269)
        at javafx.scene.Parent.impl_processCSS(Parent.java:1269)
        at javafx.scene.Parent.impl_processCSS(Parent.java:1269)
        at javafx.scene.Parent.impl_processCSS(Parent.java:1269)
        at javafx.scene.Parent.impl_processCSS(Parent.java:1269)
        at javafx.scene.control.Control.impl_processCSS(Control.java:862)
        at javafx.scene.Node.processCSS(Node.java:9035)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Scene.doCSSPass(Scene.java:545)
        at javafx.scene.Scene.access$3600(Scene.java:159)
        at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2392)
        at com.sun.javafx.tk.Toolkit.lambda$runPulse$30(Toolkit.java:314)
        at com.sun.javafx.tk.Toolkit$$Lambda$220/1271852668.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:313)
        at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:340)
        at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:525)
        at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:505)
        at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$400(QuantumToolkit.java:334)
        at com.sun.javafx.tk.quantum.QuantumToolkit$$Lambda$41/122367921.run(Unknown Source)
        at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
        at com.sun.javafx.scene.control.skin.Utils.getLineHeight(Utils.java:104)
        at com.sun.javafx.scene.control.skin.TextAreaSkin.updateFontMetrics(TextAreaSkin.java:1004)
        at com.sun.javafx.scene.control.skin.TextAreaSkin.<init>(TextAreaSkin.java:502)
        at javafx.scene.control.TextArea.createDefaultSkin(TextArea.java:611)
        at javafx.scene.control.Control.impl_processCSS(Control.java:859)
        at javafx.scene.Node.processCSS(Node.java:9035)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Scene.doCSSPass(Scene.java:545)
        at javafx.scene.Scene.access$3600(Scene.java:159)
        at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2392)
        at com.sun.javafx.tk.Toolkit.lambda$runPulse$30(Toolkit.java:314)
        at com.sun.javafx.tk.Toolkit$$Lambda$220/1271852668.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:313)
        at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:340)
        at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:525)
        at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:505)
        at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$400(QuantumToolkit.java:334)
        at com.sun.javafx.tk.quantum.QuantumToolkit$$Lambda$41/122367921.run(Unknown Source)
        at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
        at com.sun.javafx.scene.control.skin.Utils.getLineHeight(Utils.java:104)
        at com.sun.javafx.scene.control.skin.TextAreaSkin.updateFontMetrics(TextAreaSkin.java:1004)
        at com.sun.javafx.scene.control.skin.TextAreaSkin.lambda$addParagraphNode$250(TextAreaSkin.java:730)
        at com.sun.javafx.scene.control.skin.TextAreaSkin$$Lambda$409/724027590.changed(Unknown Source)
        at com.sun.javafx.binding.ExpressionHelper$SingleChange.fireValueChangedEvent(ExpressionHelper.java:182)
        at com.sun.javafx.binding.ExpressionHelper.fireValueChangedEvent(ExpressionHelper.java:81)
        at javafx.beans.property.ObjectPropertyBase.fireValueChangedEvent(ObjectPropertyBase.java:105)
        at javafx.beans.property.ObjectPropertyBase.markInvalid(ObjectPropertyBase.java:112)
        at javafx.beans.property.ObjectPropertyBase.set(ObjectPropertyBase.java:146)
        at javafx.css.StyleableObjectProperty.set(StyleableObjectProperty.java:82)
        at javafx.css.StyleableObjectProperty.applyStyle(StyleableObjectProperty.java:68)
        at javafx.scene.CssStyleHelper.transitionToState(CssStyleHelper.java:774)
        at javafx.scene.Node.impl_processCSS(Node.java:9168)
        at javafx.scene.Parent.impl_processCSS(Parent.java:1269)
        at javafx.scene.Parent.impl_processCSS(Parent.java:1269)
        at javafx.scene.Parent.impl_processCSS(Parent.java:1269)
        at javafx.scene.Parent.impl_processCSS(Parent.java:1269)
        at javafx.scene.Parent.impl_processCSS(Parent.java:1269)
        at javafx.scene.control.Control.impl_processCSS(Control.java:862)
        at javafx.scene.Node.processCSS(Node.java:9035)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Node.processCSS(Node.java:9028)
        at javafx.scene.Scene.doCSSPass(Scene.java:545)
        at javafx.scene.Scene.access$3600(Scene.java:159)
        at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2392)
        at com.sun.javafx.tk.Toolkit.lambda$runPulse$30(Toolkit.java:314)
        at com.sun.javafx.tk.Toolkit$$Lambda$220/1271852668.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:313)
        at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:340)
        at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:525)
        at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:505)
        at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$400(QuantumToolkit.java:334)
        at com.sun.javafx.tk.quantum.QuantumToolkit$$Lambda$41/122367921.run(Unknown Source)
        at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)
Exception in thread "JavaFX Application Thread" java.lang.NullPointerException
        at com.sun.javafx.scene.control.skin.Utils.computeTextWidth(Utils.java:118)
        at com.sun.javafx.scene.control.skin.TextAreaSkin$ContentView.computePrefWidth(TextAreaSkin.java:125)
        at javafx.scene.Parent.prefWidth(Parent.java:904)
        at javafx.scene.layout.Region.prefWidth(Region.java:1419)
        at com.sun.javafx.scene.control.skin.ScrollPaneSkin.computeScrollNodeSize(ScrollPaneSkin.java:935)
        at com.sun.javafx.scene.control.skin.ScrollPaneSkin.layoutChildren(ScrollPaneSkin.java:822)
        at javafx.scene.control.Control.layoutChildren(Control.java:576)
        at javafx.scene.Parent.layout(Parent.java:1076)
        at javafx.scene.Parent.layout(Parent.java:1082)
        at javafx.scene.Parent.layout(Parent.java:1082)
        at javafx.scene.Parent.layout(Parent.java:1082)
        at javafx.scene.Parent.layout(Parent.java:1082)
        at javafx.scene.Parent.layout(Parent.java:1082)
        at javafx.scene.Parent.layout(Parent.java:1082)
        at javafx.scene.Parent.layout(Parent.java:1082)
        at javafx.scene.Parent.layout(Parent.java:1082)
        at javafx.scene.Parent.layout(Parent.java:1082)
        at javafx.scene.Parent.layout(Parent.java:1082)
        at javafx.scene.Parent.layout(Parent.java:1082)
        at javafx.scene.Scene.doLayoutPass(Scene.java:552)
        at javafx.scene.Scene$ScenePulseListener.pulse(Scene.java:2397)
        at com.sun.javafx.tk.Toolkit.lambda$runPulse$30(Toolkit.java:314)
        at com.sun.javafx.tk.Toolkit$$Lambda$220/1271852668.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at com.sun.javafx.tk.Toolkit.runPulse(Toolkit.java:313)
        at com.sun.javafx.tk.Toolkit.firePulse(Toolkit.java:340)
        at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:525)
        at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(QuantumToolkit.java:505)
        at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$400(QuantumToolkit.java:334)
        at com.sun.javafx.tk.quantum.QuantumToolkit$$Lambda$41/122367921.run(Unknown Source)
        at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:95)

mac 能运行,但点击打开文件没有反应

点击打开文件,打开文件夹,拖拽文件到窗口均无反应

程序版本

master源码直接 gradle 运行

运行环境

  • 操作系统:macOS 10.13.4
  • JRE 版本:java version "1.8.0_162"

详细描述

------------------------------------------------------------
Gradle 4.6
------------------------------------------------------------

Build time:   2018-02-28 13:36:36 UTC
Revision:     8fa6ce7945b640e6168488e4417f9bb96e4ab46c

Groovy:       2.4.12
Ant:          Apache Ant(TM) version 1.9.9 compiled on February 2 2017
JVM:          1.8.0_162 (Oracle Corporation 25.162-b12)
OS:           Mac OS X 10.13.4 x86_64

解析 module-info.class 时发生 BufferUnderflowException

module-info.java:

module hello {
    requires java.base;
    requires java.sql;
    requires java.xml;
}
java.nio.BufferUnderflowException
	at java.nio.Buffer.nextGetIndex(Buffer.java:506)
	at java.nio.HeapByteBuffer.getShort(HeapByteBuffer.java:310)
	at org.glavo.viewer.BytesReader.readUnsignedShort(BytesReader.java:45)
	at org.glavo.viewer.classfile.datatype.UInt.readContent(UInt.java:44)
	at org.glavo.viewer.classfile.ClassFileComponent.read(ClassFileComponent.java:19)
	at org.glavo.viewer.classfile.ClassFileComponent.readContent(ClassFileComponent.java:31)
	at org.glavo.viewer.classfile.ClassFileComponent.read(ClassFileComponent.java:19)
	at org.glavo.viewer.classfile.datatype.Table.readEntry(Table.java:41)
	at org.glavo.viewer.classfile.datatype.Table.readContent(Table.java:29)
	at org.glavo.viewer.classfile.ClassFileComponent.read(ClassFileComponent.java:19)
	at org.glavo.viewer.classfile.ClassFileComponent.readContent(ClassFileComponent.java:31)
	at org.glavo.viewer.classfile.ClassFileComponent.read(ClassFileComponent.java:19)
	at org.glavo.viewer.classfile.datatype.Table.readAttributeInfo(Table.java:52)
	at org.glavo.viewer.classfile.datatype.Table.readEntry(Table.java:38)
	at org.glavo.viewer.classfile.datatype.Table.readContent(Table.java:29)
	at org.glavo.viewer.classfile.ClassFileComponent.read(ClassFileComponent.java:19)
	at org.glavo.viewer.classfile.ClassFileComponent.readContent(ClassFileComponent.java:31)
	at org.glavo.viewer.classfile.ClassFileComponent.read(ClassFileComponent.java:19)
	at org.glavo.viewer.classfile.ClassFileParser.parse(ClassFileParser.java:11)
	at org.glavo.viewer.gui.filetypes.classfile.ClassFileType.open(ClassFileType.java:38)
	at org.glavo.viewer.gui.OpenFileTask.call(OpenFileTask.java:35)
	at org.glavo.viewer.gui.OpenFileTask.call(OpenFileTask.java:13)
	at javafx.concurrent.Task$TaskCallable.call(Task.java:1423)
	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
	at java.lang.Thread.run(Thread.java:748)

mac 使用问题

程序版本

3.2

运行环境

java version "1.8.0_171"

  • 操作系统:
  • JRE 版本:
    java version "1.8.0_171"

详细描述

sudo java -jar ClassViewer-3.2.jar
Password:
[INFO] Not found Properties file
[Setting] viewer.debug=false
[Setting] viewer.color=true
[Setting] viewer.fonts.ui=Font[name=PingFang HK Regular, family=PingFang HK, style=Regular, size=14.0]
[Setting] viewer.fonts.text=null
[Setting] viewer.locale=zh_CN_#Hans
[Setting] viewer.disableSystemTitleBar=false
[Setting] viewer.skin=MODENA
[WARNING] Recent files not exists
objc[14525]: Class FIFinderSyncExtensionHost is implemented in both /System/Library/PrivateFrameworks/FinderKit.framework/Versions/A/FinderKit (0x7fff95870c90) and /System/Library/PrivateFrameworks/FileProvider.framework/OverrideBundles/FinderSyncCollaborationFileProviderOverride.bundle/Contents/MacOS/FinderSyncCollaborationFileProviderOverride (0x1434c1cd8). One of the two will be used. Which one is undefined.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.