Eclipseまたはコマンドラインから実行されているLinux(正しいバージョンのGTKを持っています)でOracle JVM(1.7u13)を使用して、非常に単純なJavaFXプログラムを実行しようとしています。開始すると、フォントに関するうめき声の例外がスローされます。Font.getDefault() も同じ NPE を引き起こす可能性があります。Font.getFontNames() を使用して使用可能なフォントを一覧表示できます。デフォルトだと思っていた 'System Regular' を含む 17 を確認できます。
どんなアイデアでも大歓迎です!
スタックトレース....
スレッド「メイン」での例外 java.lang.RuntimeException: アプリケーションの開始メソッドでの例外 com.sun.javafx.application.LauncherImpl.launchApplication1 (LauncherImpl.java:403) で com.sun.javafx.application.LauncherImpl.access$000(LauncherImpl.java:47) で com.sun.javafx.application.LauncherImpl$1.run(LauncherImpl.java:115) で java.lang.Thread.run(Thread.java:722) で 原因: java.lang.NullPointerException com.sun.t2k.LogicalFont.(LogicalFont.java:172) で com.sun.t2k.LogicalFont.getLogicalFont(LogicalFont.java:104) で com.sun.t2k.LogicalFont.getLogicalFont(LogicalFont.java:144) で com.sun.t2k.T2KFontFactory.createFont(T2KFontFactory.java:356) で com.sun.prism.j2d.J2DFontFactory.createFont(J2DFontFactory.java:38) で com.sun.javafx.font.PrismFontLoader.loadFont(PrismFontLoader.java:399) at javafx.scene.text.Font.(Font.java:282) javafx.scene.text.Font.getDefault(Font.java:85)で com.me.FXProblem.start(FXProblem.java:23) で com.sun.javafx.application.LauncherImpl$5.run(LauncherImpl.java:319) で com.sun.javafx.application.PlatformImpl$5.run(PlatformImpl.java:215) で com.sun.javafx.application.PlatformImpl$4$1.run(PlatformImpl.java:179) で com.sun.javafx.application.PlatformImpl$4$1.run(PlatformImpl.java:176) で java.security.AccessController.doPrivileged(ネイティブメソッド)で com.sun.javafx.application.PlatformImpl$4.run(PlatformImpl.java:176) で com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:76) で com.sun.glass.ui.gtk.GtkApplication._runLoop(ネイティブメソッド) com.sun.glass.ui.gtk.GtkApplication$3$1.run(GtkApplication.java:82) で ... あともう1つ
アップデート
エラーを取得するサンプル コード。Font.getDefault() のルート原因が、いくつかの非常に単純な UI ノードが表示されない原因であると想定しています。
package com.me;
import javafx.application.Application;
import javafx.scene.text.Font;
import javafx.stage.Stage;
/**
* Problem class to show the stack trace from Font.getDefault()
*/
public class FXProblem extends Application
{
/**
* {@inheritDoc}
*/
@Override
public void start(final Stage stage) throws Exception
{
Font.getDefault();
}
/**
* Main.
*/
public static void main(final String[] args)
{
launch();
}
}