我从 http://hg.openjdk.java.net/openjfx/8/master/tests/那里获得并构建了JemmyFX和JemmyFXBrowser,但我不知道如何启动它。 从目录 tests/tools/Jemmy
,我首先尝试:
$ java -jar JemmyFXBrowser/dist/JemmyFXBrowser.jar
但这会产生异常:
Exception in thread "main" java.lang.NoClassDefFoundError: org/jemmy/timing/State
然后我尝试将所有*.jars
添加到类路径中,如下所示:
$ java -cp ./JemmyFX/dist/JemmyFX.jar:./GlassRobot/dist/GlassRobot.jar:./GlassImage/dist/GlassImage.jar:./jemmy_core/JemmySupport.jar:./jemmy_core/JemmyAWTInput.jar:./jemmy_core/JemmyBrowser.jar:./jemmy_core/JemmyCore.jar:./jemmy_core/junit.jar -jar ./JemmyFXBrowser/dist/JemmyFXBrowser.jar
但这会产生与上述相同的异常。 所以,我分解了JemmyFXBrowser.jar
以发现主类的名称并尝试了这个:
$ java -cp ./JemmyFX/dist/JemmyFX.jar:./GlassRobot/dist/GlassRobot.jar:./GlassImage/dist/GlassImage.jar:./jemmy_core/JemmySupport.jar:./jemmy_core/JemmyAWTInput.jar:./jemmy_core/JemmyBrowser.jar:./jemmy_core/JemmyCore.jar:./jemmy_core/junit.jar:./JemmyFXBrowser/dist/JemmyFXBrowser.jar org.jemmy.fx.Browser
这会导致几个例外。 首先,这个:
Exception in thread "FX app launch thread" java.lang.ArrayIndexOutOfBoundsException: 0
然后这个,一遍又一遍:
java.lang.IllegalStateException: Toolkit not initialized
显然,我在这里缺少一些非常基本的东西,但我在任何地方都找不到关于这个应用程序应该如何启动的文档,而且它没有内置的帮助。
下一个参数应该是要测试的应用程序的主类。 我们还必须将我们的应用程序*.jar
(或*.jars
(添加到类路径中。
$ java -cp ./JemmyFX/dist/JemmyFX.jar:./GlassRobot/dist/GlassRobot.jar:./GlassImage/dist/GlassImage.jar:./jemmy_core/JemmySupport.jar:./jemmy_core/JemmyAWTInput.jar:./jemmy_core/JemmyBrowser.jar:./jemmy_core/JemmyCore.jar:./jemmy_core/junit.jar:./JemmyFXBrowser/dist/JemmyFXBrowser.jar:./MyApplication.jar org.jemmy.fx.Browser my.MainClass