- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
当启动 JavaFX 应用程序(嵌入了 Swing 代码)作为 Webstart 时,会发生以下错误:
java.lang.ExceptionInInitializerError
at com.ookali.reol.annotator.mainApp.MainApp.start(MainApp.java:481)
at com.sun.javafx.applet.FXApplet2$2.run(Unknown Source)
at com.sun.javafx.application.PlatformImpl.lambda$null$174(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at com.sun.javafx.application.PlatformImpl.lambda$runLater$175(Unknown Source)
at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$null$149(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.RuntimeException: Error when calling sun.swing.JLightweightFrame.getMethod('notifyDisplayChanged').
at javafx.embed.swing.SwingNode$OptionalMethod.<init>(Unknown Source)
at javafx.embed.swing.SwingNode.<clinit>(Unknown Source)
... 9 more
Caused by: java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "accessClassInPackage.sun.swing")
at java.security.AccessControlContext.checkPermission(Unknown Source)
at java.security.AccessController.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPermission(Unknown Source)
at java.lang.SecurityManager.checkPackageAccess(Unknown Source)
at sun.plugin2.applet.SecurityManagerHelper.checkPackageAccessHelper(Unknown Source)
at sun.plugin2.applet.FXAppletSecurityManager.checkPackageAccess(Unknown Source)
at java.lang.Class.checkPackageAccess(Unknown Source)
at java.lang.Class.checkMemberAccess(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
... 11 more
MainApp.java:481 处的代码
final SwingNode sNcontent = new SwingNode();
它在 Windows 7 中使用 Java 8 Update 60、Java 安全级别“高”进行了测试。应用程序的所有 jar 都使用有效证书进行签名。如果应用程序作为独立应用程序启动,它将毫无异常(exception)地启动。
我尝试将 jnlp 文件中的权限设置为 all-permissions 或 j2ee-application-client-permissions,但这样 java 由于安全问题而拒绝启动应用程序。通过 rt.jar(来自 jdk)添加 com.sun 包对问题没有任何影响。
这是使用的 jnlp 文件:
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="1.0" xmlns:jfx="http://javafx.com" href="App.jnlp">
<information>
<title>Annotator</title>
<vendor>Unknown</vendor>
<description>pdfannotator</description>
<offline-allowed/>
</information>
<resources>
<j2se version="1.6+" href="http://java.sun.com/products/autodl/j2se"/>
<jar href="application.jar" size="656744" download="eager" />
<jar href="lib/chemistry-opencmis-client-api-0.13.0.jar" size="45801" download="eager" />
<jar href="lib/chemistry-opencmis-client-bindings-0.13.0.jar" size="372941" download="eager" />
<jar href="lib/chemistry-opencmis-client-impl-0.13.0.jar" size="168501" download="eager" />
<jar href="lib/chemistry-opencmis-commons-api-0.13.0.jar" size="154224" download="eager" />
<jar href="lib/chemistry-opencmis-commons-impl-0.13.0.jar" size="705465" download="eager" />
<jar href="lib/commons-codec-1.9.jar" size="289895" download="eager" />
<jar href="lib/commons-io-2.4.jar" size="202638" download="eager" />
<jar href="lib/commons-logging-1.2.jar" size="70678" download="eager" />
<jar href="lib/gson-2.2.4.jar" size="211432" download="eager" />
<jar href="lib/httpclient-4.5.jar" size="782684" download="eager" />
<jar href="lib/httpcore-4.4.1.jar" size="354806" download="eager" />
<jar href="lib/jackson-annotations-2.6.0.jar" size="57828" download="eager" />
<jar href="lib/jackson-core-2.6.0.jar" size="273338" download="eager" />
<jar href="lib/jackson-databind-2.6.0.jar" size="1218384" download="eager" />
<jar href="lib/json-20141113.jar" size="73899" download="eager" />
<jar href="lib/pdfbox-app-1.8.10.jar" size="10968615" download="eager" />
<jar href="lib/rt-1.5.0_06.jar" size="68040885" download="eager" />
<jar href="lib/slf4j-api-1.7.5.jar" size="34205" download="eager" />
<jar href="lib/stax2-api-3.1.4.jar" size="178711" download="eager" />
<jar href="lib/swing-layout-1.0.3.jar" size="125697" download="eager" />
<jar href="lib/woodstox-core-asl-4.4.0.jar" size="510465" download="eager" />
</resources>
<jfx:javafx-desc width="600" height="400" main-class="com.ookali.reol.annotator.mainApp.MainApp" name="annotator" >
</jfx:javafx-desc>
<update check="background"/>
</jnlp>
最佳答案
问题是 PermissionException“accessClassInPackage.sun.swing”,这表示在 Webstart 中不允许使用包 sun.swing。必须删除 sun.swing 包中类的所有用法才能使其正常工作。
关于JavaFX SwingNode ExceptionInInitializerError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32951653/
编辑:我在下面留下了我原来的问题。如果您希望使用 AnchorFX 源代码和我下面的代码测试问题,您应该能够重现问题。在其他一些情况下也会发生,并且类似于以下两个问题中的问题:Resize Swing
当启动 JavaFX 应用程序(嵌入了 Swing 代码)作为 Webstart 时,会发生以下错误: java.lang.ExceptionInInitializerError at com
我正在尝试将 Swing 内容嵌入到更大的 JavaFX 应用程序中,但是我无法让嵌入的 JPanel 具有透明背景。 JPanel 仅绘制其部分区域。我希望绿色“显示出来”,即删除下图中的浅灰色背景
我有一个 JavaFX 应用程序,它通过 SwingNode 显示 Swing 图。由于 swing 组件的编写方式以及我不愿意重构它,每次用户需要更新数据时,我都会创建一个新的 swing plot
我用 JavaFx 编写了一个简单的应用程序,想在其中使用 swingNode,所以我在更改节点的大小或位置时遇到问题 public class SwingFx extends Application
假设我已经这样做了 - SwingNode deviceView = new SwingNode(); JDesktopPane desktop = new JDesktopPane(); // Ad
JavaFx 的 SwingNode 显示它在 Java 1.8.0_102-b14 中包含的组件时遇到问题。我不确定这个问题是由于我的 Java 版本太旧,当前(如果我的是当前)Java 版本中的错
当我在面板(JFXPanel 中的 GridPane)中有多个 SwingNode 时,我注意到性能极度下降。如果只有一个 SwingNode,这似乎不会发生。 我意识到混合使用 Swing 和 Ja
我一直在使用这段代码尝试 JavaFX8 中的 SwingNode。问题是当窗口出现时我无法单击按钮,直到我调整了窗口大小。移动它不起作用。我需要最大化它或用鼠标调整它的大小以使按钮响应。 我意识到这
我用 javaFx 编写了一个应用程序,想将 JButton 添加到 SwingNode 中的 Pane 中这是我的 fxml Controller public class Controller i
问题:我有需要使用 JavaFX 舞台显示的 Swing 内容。 Swing 内容需要包装在 ScrollPane 中,以便在调整舞台大小时保持正常的 Swing 大小。 预期行为:首次显示舞台时,需
我已使用 SwingNode 将 JFileChooser 集成到 JavaFX 应用程序中。该对话框显示并且可用,但我不确定如何从中获取所选文件。 感谢您的帮助。 @FXML public void
我一直在尝试使用 import javafx.embed.swing.SwingNode 因为我想在我的项目中使用 SwingNode,但是出现了错误“无法解析”。 我的库中有一个JavaFX SDK
SwingNode 在使用 Spring Boot、OpenJFX 和 Maven 的应用程序中导致链接错误 我通读了有关此问题的帖子,尝试按照他们的建议进行操作(请参阅下面的代码),但无法解决我的问
我对使用 JavaFX 还很陌生,我希望将 JPanel 添加到 JavaFX Pane 中。我目前拥有的代码可以工作,但是面板非常小。我希望能够调整它的大小,使其适合 JavaFX Pane 。 代
概述 在 JavaFX 应用程序中使用 FlyingSaucer,出于各种原因避免使用 WebView: 不提供对其滚动条的直接 API 访问以实现同步行为; 捆绑 JavaScript,这对我的用例
FXMLController初始化方法: @FXML private VBox vbContainer; MediaPlayerVLC m_mediaPlayer; public void initi
我正在构建一个 Java FX 音乐应用程序,我有一个 Java FX Pane ,其中包含一个包含 JComponent 的 SwingNode,我希望能够隐藏该组件的顶部和底部,只显示中间部分。
我有以下代码: private void launchSingleRecordWindow() { SwingNode swingNode = new SwingNode(); Mai
如何在 JavaFX8 中调整 SwingNode 中的 Swing 控件的大小? 有时,我在 SwingNode 中调整了控件的大小。但是 SwingNode 似乎反对这一点。 据说在resize(
我是一名优秀的程序员,十分优秀!