Mac OSX El Capitan 上的 JDK 7/JavaFX 2 应用程序

2023-11-24

我刚刚升级到 El Capitan,在启动在 JDK1.7.0u79(Oracle 提供的最新版本)下运行的自定义 JavaFX2 应用程序时遇到问题。

启动应用程序时,我收到此异常:

 Exception in thread "main" java.lang.RuntimeException: Exception in Application start method
    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:403)
    at com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:47)
    at com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:115)
    at java.lang.Thread.run(Thread.java:745)
 Caused by: java.lang.ExceptionInInitializerError
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:191)
    at javafx.scene.control.Control.loadClass(Control.java:115)
    at javafx.scene.control.Control.loadSkinClass(Control.java:1021)
    at javafx.scene.control.Control.access$500(Control.java:70)
    at javafx.scene.control.Control$12.invalidated(Control.java:972)
    at javafx.beans.property.StringPropertyBase.markInvalid(StringPropertyBase.java:127)
    at javafx.beans.property.StringPropertyBase.set(StringPropertyBase.java:161)
    at com.sun.javafx.css.StyleableStringProperty.set(StyleableStringProperty.java:71)
    at javafx.scene.control.Control$12.set(Control.java:964)
    at com.sun.javafx.css.StyleableStringProperty.applyStyle(StyleableStringProperty.java:59)
    at com.sun.javafx.css.StyleableStringProperty.applyStyle(StyleableStringProperty.java:31)
    at com.sun.javafx.css.StyleableProperty.set(StyleableProperty.java:70)
    at com.sun.javafx.css.StyleHelper.transitionToState(StyleHelper.java:900)
    at javafx.scene.Node.impl_processCSS(Node.java:7418)
    at javafx.scene.Parent.impl_processCSS(Parent.java:1146)
    at javafx.scene.control.Control.impl_processCSS(Control.java:1154)
    at javafx.scene.Parent.impl_processCSS(Parent.java:1153)
    at javafx.scene.Parent.impl_processCSS(Parent.java:1153)
    at javafx.scene.Node.processCSS(Node.java:7386)
    at javafx.scene.Scene.doCSSPass(Scene.java:454)
    at javafx.scene.Scene.preferredSize(Scene.java:1468)
    at javafx.scene.Scene.impl_preferredSize(Scene.java:1535)
    at javafx.stage.Window$9.invalidated(Window.java:717)
    at javafx.beans.property.BooleanPropertyBase.markInvalid(BooleanPropertyBase.java:127)
    at javafx.beans.property.BooleanPropertyBase.set(BooleanPropertyBase.java:161)
    at javafx.stage.Window.setShowing(Window.java:781)
    at javafx.stage.Window.show(Window.java:796)
    at javafx.stage.Stage.show(Stage.java:233)
    at au.com.religaresecurities.trademax.client.Start.start(Start.java:131)
    at com.sun.javafx.application.LauncherImpl$5.run(LauncherImpl.java:319)
    at com.sun.javafx.application.PlatformImpl$5.run(PlatformImpl.java:219)
    at com.sun.javafx.application.PlatformImpl$4$1.run(PlatformImpl.java:182)
    at com.sun.javafx.application.PlatformImpl$4$1.run(PlatformImpl.java:179)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sun.javafx.application.PlatformImpl$4.run(PlatformImpl.java:179)
    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:76)
 Caused by: java.lang.NullPointerException
    at com.sun.t2k.MacFontFinder.initPSFontNameToPathMap(MacFontFinder.java:339)
    at com.sun.t2k.MacFontFinder.getFontNamesOfFontFamily(MacFontFinder.java:390)
    at com.sun.t2k.T2KFontFactory.getFontResource(T2KFontFactory.java:233)
    at com.sun.t2k.LogicalFont.getSlot0Resource(LogicalFont.java:184)
    at com.sun.t2k.LogicalFont.getSlotResource(LogicalFont.java:228)
    at com.sun.t2k.CompositeStrike.getStrikeSlot(CompositeStrike.java:86)
    at com.sun.t2k.CompositeStrike.getMetrics(CompositeStrike.java:132)
    at com.sun.javafx.font.PrismFontUtils.getFontMetrics(PrismFontUtils.java:31)
    at com.sun.javafx.font.PrismFontLoader.getFontMetrics(PrismFontLoader.java:466)
    at javafx.scene.text.Text.<init>(Text.java:153)
    at javafx.scene.text.Text.<init>(Text.java:162)
    at com.sun.javafx.scene.control.skin.ProgressIndicatorSkin.<clinit>(ProgressIndicatorSkin.java:78)
    ... 37 more

我不能只是将应用程序迁移到 Java 8,因此非常感谢您的帮助。

Update

通过将其添加到我的主要方法的开头,我已经能够让应用程序再次运行。还有更好的解决方案吗?

    try {
        Class<?> macFontFinderClass = Class.forName("com.sun.t2k.MacFontFinder");
        Field psNameToPathMap = macFontFinderClass.getDeclaredField("psNameToPathMap");
        psNameToPathMap.setAccessible(true);
        psNameToPathMap.set(null, new HashMap<String, String>());
    } catch (Exception e) {
        // ignore
    }

在广泛的企业应用程序中使用了一个多星期后,我没有注意到 UI 中有任何问题。

由于缺乏更好的解决方案,我接受上面的更新作为答案。也许它可以帮助某人...

通过将其添加到我的主要方法的开头,我已经能够让应用程序再次运行。

    try {
        Class<?> macFontFinderClass = Class.forName("com.sun.t2k.MacFontFinder");
        Field psNameToPathMap = macFontFinderClass.getDeclaredField("psNameToPathMap");
        psNameToPathMap.setAccessible(true);
        psNameToPathMap.set(null, new HashMap<String, String>());
    } catch (Exception e) {
        // ignore
    }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Mac OSX El Capitan 上的 JDK 7/JavaFX 2 应用程序 的相关文章

  • Java:迭代 Collection 的最佳方法(此处为 ArrayList)

    今天 当我看到一段我已经使用了数百次的代码时 我很高兴地开始编码 迭代集合 此处为 ArrayList 出于某种原因 我实际上查看了 Eclipse 的自动完成选项 这让我想知道 在什么情况下以下循环比其他循环更好使用 经典的数组索引循环
  • Java:如何从转义的 URL 获取文件?

    我收到了一个定位本地文件的 URL 事实上我收到的 URL 不在我的控制范围内 URL 按照 RFC2396 中的定义进行有效转义 如何将其转换为 Java File 对象 有趣的是 URL getFile 方法返回一个字符串 而不是文件
  • OpenCV 中的 Gabor 内核参数

    我必须在我的应用程序中使用 Gabor 过滤器 但我不知道这个 OpenCV 方法参数值 我想对虹膜进行编码 启动 Gabor 过滤器并获取特征 我想对 12 组 Gabor 参数值执行此操作 然后我想计算 Hamming Dystans
  • 正则表达式拆分数字和字母组,不带空格

    如果我有一个像 11E12C108N 这样的字符串 它是字母组和数字组的串联 如何在中间没有分隔符空格字符的情况下分割它们 例如 我希望分割结果为 tokens 0 11 tokens 1 E tokens 2 12 tokens 3 C
  • JAVA - Xuggler - 组合 MP3 音频文件和 MP4 电影时播放视频

    使用 JAVA 和 Xuggler 以下代码组合 MP3 音频文件和 MP4 电影文件并输出组合的 mp4 文件 我希望在合并音频和视频文件时应自动播放输出视频文件 String inputVideoFilePath in mp4 Stri
  • 按第一列排序二维数组,然后按第二列排序

    int arrs 1 100 11 22 1 11 2 12 Arrays sort arrs a b gt a 0 b 0 上面的数组已排序为 1 100 1 11 2 12 11 22 我希望它们按以下方式排序a 0 b 0 首先 如果
  • 如何模拟从抽象类继承的受保护子类方法?

    如何使用 Mockito 或 PowerMock 模拟由子类实现但从抽象超类继承的受保护方法 换句话说 我想在模拟 doSomethingElse 的同时测试 doSomething 方法 抽象超类 public abstract clas
  • Hazelcast 分布式锁与 iMap

    我们目前使用 Hazelcast 3 1 5 我有一个简单的分布式锁定机制 应该可以跨多个 JVM 节点提供线程安全性 代码非常简单 private static HazelcastInstance hInst getHazelcastIn
  • 在 Netbeans 8 上配置 JBoss EAP 的问题

    我已经下载了 JBoss EAP 7 并正在 Netbeans 8 上配置它 我已经到达向导 实例属性 其中要求从选择框中选择 域 当我打开选择框时 它是空的 没有什么可以选择的 因此 完成 按钮也处于非活动状态 这使得无法完成配置 我通过
  • Calendar.getInstance(TimeZone.getTimeZone("UTC")) 不返回 UTC 时间

    我对得到的结果真的很困惑Calendar getInstance TimeZone getTimeZone UTC 方法调用 它返回 IST 时间 这是我使用的代码 Calendar cal Two Calendar getInstance
  • 将 SignedHash 插入 PDF 中以进行外部签名过程 -workingSample

    遵循电子书第 4 3 3 节 PDF 文档的数字签名 https jira nuxeo com secure attachment 49931 digitalsignatures20130304 pdf 我正在尝试创建一个工作示例 其中 客
  • 以编程方式在java的resources/source文件夹中创建文件?

    我有两个资源文件夹 src 这是我的 java 文件 资源 这是我的资源文件 图像 properties 组织在文件夹 包 中 有没有办法以编程方式在该资源文件夹中添加另一个 properties 文件 我尝试过这样的事情 public s
  • IntelliJ - 调试模式 - 在程序内存中搜索文本

    我正在与无证的第三方库合作 我知道有一定的String存储在库深处的某个字段中的某处 我可以预测的动态值 但我想从库的 API 中获取它 有没有一种方法可以通过以下方式进行搜索 类似于全文搜索 full程序内存处于调试模式并在某个断点处停止
  • 如何在JSTL中调​​用java方法? [复制]

    这个问题在这里已经有答案了 这可能是重复的问题 我只想调用不是 getter 或 setter 方法的方法例如 xyz 类的 makeCall someObj stringvalue Java类 Class XYZ public Strin
  • Cucumber Java 与 Spring Boot 集成 - Spring @Autowired 抛出 NullPointer 异常

    我正在为 Spring boot 应用程序编写 cucumber java 单元测试来测试每个功能 当我与 Spring Boot 集成时 Autowired 类抛出 NullPointer 异常 Spring Boot应用程序类 Spri
  • 游戏内的java.awt.Robot?

    我正在尝试使用下面的代码来模拟击键 当我打开记事本时 它工作正常 但当我打开我想使用它的游戏时 它没有执行任何操作 所以按键似乎不起作用 我尝试模拟鼠标移动和点击 这些动作确实有效 有谁知道如何解决这个问题 我发现这个问题 如何在游戏中使用
  • Eclipse 中 Spring MVC 模型对象的 (jsp /jstl) 视图中的代码辅助

    在 Spring MVC 中 当将对象放置在视图模型中时 如下所示 public String getUser Model model fetch user model addAttribute user user return viewN
  • 为什么C++代码执行速度比java慢?

    我最近用 Java 编写了一个计算密集型算法 然后将其翻译为 C 令我惊讶的是 C 的执行速度要慢得多 我现在已经编写了一个更短的 Java 测试程序和一个相应的 C 程序 见下文 我的原始代码具有大量数组访问功能 测试代码也是如此 C 的
  • 调整添加的绘制组件的大小和奇怪的摆动行为

    这个问题困扰了我好几天 我正在制作一个特殊的绘画程序 我制作了一个 JPanel 并添加了使用 Paint 方法绘制的自定义 jComponent 问题是 每当我调整窗口大小时 所有添加的组件都会 消失 或者只是不绘制 因此我最终会得到一个
  • 在 RESTful Web 服务中实现注销

    我正在开发一个需要注销服务的移动应用程序 登录服务是通过数据库验证来完成的 现在我陷入了注销状态 退一步 您没有提供有关如何在应用程序中执行身份验证的详细信息 并且很难猜测您在做什么 但是 需要注意的是 在 REST 应用程序中 不能有会话

随机推荐

  • 如何使用 Perl 对 PDF 文件进行全文搜索?

    我有一堆 PDF 文件 我的 Perl 程序需要对它们进行全文搜索以返回哪些文件包含特定字符串 迄今为止我一直在使用这个 my search results grep i l string pdf 其中 string 是要查找的文本 然而
  • jquery:两个数字的百分比

    EDITED 感谢所有提供支持的人 我将与您分享最好的工作脚本 希望可以帮助正在寻找相同解决方案的其他人 document ready function price1 price2 keyup function var priceOne p
  • XML 属性与 XML 元素

    在工作中 我们被要求创建 XML 文件以将数据传递到另一个离线应用程序 然后该应用程序将创建第二个 XML 文件来传回 以便更新我们的一些数据 在此过程中 我们一直在与其他应用程序的团队讨论 XML 文件的结构 我想出的示例基本上是这样的
  • Ruby 中的“Monkey Patching”究竟意味着什么?

    根据维基百科 一个猴子补丁 is 延长或修改运行时的方法 动态语言代码 不改变原始来源 代码 同一条目中的以下陈述让我感到困惑 在 Ruby 中 术语 猴子补丁 是 被误解为任何动态 对类的修改通常是 用作动态的同义词 在运行时修改任何类
  • 列出 CSS 自定义属性(CSS 变量)

    我在样式表中设置了一些 CSS 自定义属性 root bc fff bc primary eee bc secondary ddd 如果我已经知道 CSS 变量的名称 我可以单独检索它们 如下所示 console log getComput
  • 如何使用javascript读取epub文件

    如何使用javascript读取epub文件 我尝试了 epubjs 但这不适合我的要求 还有其他可用的替代 JavaScript 库吗 Readium 基金会刚刚发布了 Readium Web Components 请参阅http rea
  • Django 升级 1.9 -> 1.10 出现“RemovedInDjango110Warning”导入错误

    简单之后pip install U django我收到以下错误 Environment Request Method GET Request URL http localhost 8000 shelf Django Version 1 10
  • 捆绑 .NET dll 以在无 .NET 的计算机中运行应用程序?

    AFAIK ngen将 MSIL 转换为本机代码 也称为 pre JIT 但我从未过多关注它对启动性能的影响 男士应用程序仍然需要 NET基类库 运行时 由于基类库拥有我们的 NET 程序集所需的一切 正确吗 是否可以将框架的 DLL 与我
  • 从 Laravel 中的多选表单中获取选定值

    要生成默认选择项目的下拉列表 请执行以下操作 echo Form select size array L gt Large M gt Medium S gt Small S 因此 我生成了一个默认选择多个项目的下拉列表 方法如下 echo
  • 如何使用 IMAP 和 php 将邮件附件下载到特定文件夹

    我正在开发一个网站 用户可以在其中邮寄票证并将任何类型的文件附加到特定的邮件 ID 我需要将邮件主题 内容和附件添加到数据库中 我正在使用 cron 来执行此操作 除了附件之外 一切都很完美 我看过一些创建下载链接的帖子 由于我使用的是 c
  • 如何捕获用户离开页面并取消它

    当用户离开 GWT 应用程序时 我想打开一个确认对话框并为他们提供留下的选择 即确认 您确定要离开此页面吗 是 否 我知道如何构建对话框 问题是 如何捕获用户离开页面的事件以及如何取消它 Daniel Call Window addWind
  • StreamingResponseBody 中的异常处理不起作用

    我试图捕获在我的实现中抛出的异常StreamingResponseBody 我可以看到类内部抛出异常 但是我的处理似乎有效 但是我无法获取自定义消息 我的响应代码是200 GetMapping path test produces appl
  • Android AppWidget 在重新启动之前不会显示在蜂窝菜单中

    我已经为 Honeycomb 创建了一个 AppWidget 它运行良好 但首次安装时 它不会显示在 Widgets 菜单中 因此无法将其添加到主屏幕 重新启动设备将使其显示出来 或者在开发过程中 从 Eclipse 发送两次将使其显示出来
  • 保存到用户“我的文档”中的文件夹

    当我为应用程序创建安装程序时 我将在 我的文档 中创建一个文件夹 该文件夹将用于保存应用程序中的文件 我希望我的应用程序在保存文件和打开文件对话框打开时自动提取此目录 现在我的问题是 我需要使用什么字符串才能访问 我的文档 中的文件夹 我知
  • 在 Android Studio 中导入模块

    如何在 Android Studio 中导入外部模块 名为 ViewPagerIndicator 在 Android Studio 3 3 及更低版本中导入模块的步骤 Go to File gt gt New gt gt 导入模块 选择要导
  • ios url从邮件重定向到应用程序

    是否可以使用通过邮件发送的 URL 来启动我的应用程序 例如 我有用户个人资料 用户想要邀请他们的朋友进入应用程序 他们发送一封电子邮件 其中包含一些网址 例如 通过此链接加入我 http appname sender id 25 some
  • 复制和克隆有什么区别?

    这个问题似乎暗示这只是一个实现细节 memcpyvs 但我找不到任何关于差异的明确描述 Clone专为任意重复而设计 Clone类型的实现T可以执行创建新对象所需的任意复杂操作T 它是一个正常特征 除了在前奏中 因此需要像正常特征一样使用
  • 基于一个代码库/项目创建演示版和完整版应用程序

    我在一个项目中使用 Eclipse 开发了一款 Android 应用程序 它是结构化的 来自 iPhone 因此一个常量定义它是演示版还是完整版 现在我遇到的问题是 每次我想创建演示版本时 我都需要更改常量 但还需要使用不同的包名称制作项目
  • BitBucket:主机密钥验证失败

    我想将远程存储库克隆到本地计算机 我使用了命令 git clone email protected
  • Mac OSX El Capitan 上的 JDK 7/JavaFX 2 应用程序

    我刚刚升级到 El Capitan 在启动在 JDK1 7 0u79 Oracle 提供的最新版本 下运行的自定义 JavaFX2 应用程序时遇到问题 启动应用程序时 我收到此异常 Exception in thread main java