【发布时间】:2016-04-20 11:48:04
【问题描述】:
当前使用 JDK 1.8 更新 92(32 位)。为什么 ScenicView 在从 jar 或作为 -javaagent: 参数启动时无法找到我的 JavaFX 应用程序?
如果我启动我的 JavaFX 应用程序,然后从 jar 文件启动 ScenicView,它只是坐在那里试图找到要连接的东西。我在命令行上设置了 -debug 选项,我得到的只是这个:-
Platform running
Launching ScenicView v8.0.0
Startup done
Creating server
Server done
Number of running Java applications found: 0
0 JavaFX applications found
我尝试将 ScenicView 作为 IntelliJ 的“外部工具”(指定了正确的 JVM)和仅从命令行启动。结果一样。
-javaagent 方法似乎也不起作用。如果我将 jar 作为 -javaagent 参数添加到我的应用程序中,根据文档,我只会在启动时收到此错误:
Exception in thread "scenic-view-boot" java.lang.IllegalStateException: Toolkit not initialized
at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:273)
at com.sun.javafx.application.PlatformImpl.runLater(PlatformImpl.java:268)
at javafx.application.Platform.runLater(Platform.java:83)
at org.scenicview.ScenicView.lambda$premain$34(ScenicView.java:122)
at java.lang.Thread.run(Thread.java:745)
唯一可行的启动方法是将 ScenicView jar 添加到我的应用程序类路径中,然后像这样将启动嵌入到我的应用程序源中
ScenicView.show(mainScene);
这不如在我需要时将其作为独立工具启动那样方便。
这曾经完美地工作过。我可以挖掘出一些较旧的 JDK 版本,看看它是否适用于较早的 jvm(更新 77 出现完全相同的问题),但与此同时,有没有办法获得更详细的注销,以便我可以尝试找到问题?
【问题讨论】: