gpt4 book ai didi

java - 分析期间无法访问菜单

转载 作者:搜寻专家 更新时间:2023-11-01 03:51:20 24 4
gpt4 key购买 nike

我有一个 JavaFX 应用程序,我想在 JVisualVM 分析器下运行它。但是,在探查器下运行时,我无法从菜单栏访问菜单项。

到目前为止,我的应用程序只是一个使用 SceneBuilder 构建的简单场景。它有一个 AnchorPane 和一个默认的菜单栏。

<?xml version="1.0" encoding="UTF-8"?>

<?import javafx.scene.control.*?>
<?import java.lang.*?>
<?import javafx.scene.layout.*?>
<?import javafx.scene.layout.AnchorPane?>

<AnchorPane minHeight="-Infinity" minWidth="-Infinity" prefHeight="200.0" prefWidth="200.0" xmlns="http://javafx.com/javafx/8" xmlns:fx="http://javafx.com/fxml/1">
<children>
<MenuBar layoutX="-41.0" layoutY="-12.0" AnchorPane.bottomAnchor="0.0" AnchorPane.leftAnchor="0.0" AnchorPane.rightAnchor="0.0" AnchorPane.topAnchor="0.0">
<menus>
<Menu mnemonicParsing="false" text="File">
<items>
<MenuItem mnemonicParsing="false" text="Close" />
</items>
</Menu>
</menus>
</MenuBar>
</children>
</AnchorPane>

代码也很简单,没什么特别的:

@Override
public void start(Stage primaryStage) throws IOException
{
String path = "Window.fxml";
URL url = getClass().getClassLoader().getResource(path);
FXMLLoader loader = new FXMLLoader();
loader.setLocation(url);

Parent root = loader.load();
Scene scene = new Scene(root, 600, 400);
primaryStage.setScene(scene);
primaryStage.show();
}

我做了以下事情:

  • 从 Eclipse 运行应用程序直到窗口出现,
  • 单击"file"以查看“关闭”是否可见
  • 启动 JVisualVM,
  • 双击我的应用程序,
  • 转到“探查器”选项卡
  • 点击“CPU”并等待它注入(inject)分析指令
  • 再次点击"file",但没有出现“关闭”

在 Eclipse 中,我看到以下错误消息很快出现在控制台窗口中:

Exception in thread "JavaFX Application Thread" java.lang.NoClassDefFoundError: com/sun/javafx/tk/Toolkit$$Lambda$166
at com.sun.javafx.tk.Toolkit$$Lambda$166/563347763.get$Lambda(Unknown Source)
at com.sun.javafx.tk.Toolkit.runPulse(Unknown Source)
at com.sun.javafx.tk.Toolkit.firePulse(Unknown Source)
at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(Unknown Source)
at com.sun.javafx.tk.quantum.QuantumToolkit.pulse(Unknown Source)
at com.sun.javafx.tk.quantum.QuantumToolkit.lambda$runToolkit$363(Unknown Source)
at com.sun.javafx.tk.quantum.QuantumToolkit$$Lambda$41/353428524.run(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$141(Unknown Source)
at com.sun.glass.ui.win.WinApplication$$Lambda$37/1109371569.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

如何分析从我的 JavaFX 应用程序的菜单中调用的方法?

我也尝试过将应用程序打包成一个可执行的 JAR 文件,这样 Eclipse 就不会参与了。

最佳答案

如果探查器使用 BCI/仪器,那么这个问题可能是相关的:Transforming lambdas in Java 8

如果探查器有任何选项来停止跟踪 lambda 的性能,请尝试使用它。

很想知道您的问题是否仍然存在于较新版本的 Java 中。

关于java - 分析期间无法访问菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27145847/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com