JavaFX 不允許 WebViews 是透明的,所以我發現這個補丁使用 javassist 來修改 Java 的com.sun.webkit.WebPage.這在 Java 8 之前運行良好,但在 Java 9 中停止工作:> Patching com/sun/webkit/WebPage ...javassist.CannotCompileException: [source error] no such class: com.sun.webkit.graphics.WCRectangle at javassist.CtBehavior.setBody(CtBehavior.java:446) at javassist.CtBehavior.setBody(CtBehavior.java:412) at com.github.micheljung.transparentwebview.TransparentWebViewPatch.transform(TransparentWebViewPatch.java:64) at java.instrument/java.lang.instrument.ClassFileTransformer.transform(ClassFileTransformer.java:246) at java.instrument/sun.instrument.TransformerManager.transform(TransformerManager.java:188) at java.instrument/sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:550) at java.base/java.lang.ClassLoader.defineClass2(Native Method) at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1099) at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:206) at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:760) at java.base/jdk.internal.loader.BuiltinClassLoader.findClassInModuleOrNull(BuiltinClassLoader.java:681) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:606) at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:580) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:496) at javafx.web/javafx.scene.web.WebEngine.<clinit>(WebEngine.java:338) at javafx.web/javafx.scene.web.WebView.<init>(WebView.java:260) at com.github.micheljung.transparentwebview.Demo.start(Demo.java:21)由于我不明白 javassist 如何查找類,我在這里迷路了。我認為它與 Java 9 模塊有關。有人知道嗎?該類仍然存在,具有相同的包名。
添加回答
舉報
0/150
提交
取消