当构建为独立于操作系统的zip时,Netbeans RCP应用程序无法在IDE外部工作

时间:2017-09-21 19:29:57

标签: java swing javafx netbeans netbeans-platform

我正在Netbeans RCP上构建一个统计分析应用程序,以便更快,更轻松地解决测试https://github.com/PaulMaxAvalosAguilar/Statistikos-Klubas。 事情很简单:

1.-有一个名为TrabajosViewer的模块,它使用节点API来显示工作区,您可以使用一些有意义的名称组织样本,首先创建工作区,然后向其中添加一些数据。

2.-您打开编辑器顶部组件,为您输入的所有样本计算一些描述性的satistics东西

3.-完成测试所需的所有内容!样本存储在嵌入式H2数据库(数据模块)中,每次单击TrabajosNode时都会计算结果。

然而,当我测试应用程序时,我必须添加以下示例: https://1drv.ms/t/s!AkZmosJJMvdIu3c_IiVkD6JAVVgk(3344个要素);由于应用程序具有多线程功能,所以一切都很好,除了在作为独立操作系统的zip版本构建后,应用程序从摇摆顶部组件冻结,这是非常罕见的,因为Netbeans IDE内部没有发生这种情况。我认为构建脚本有一些东西可以看,因为我构建了一个Gradle版本,一切正常https://github.com/PaulMaxAvalosAguilar/Statistikos-Klubas2

1 个答案:

答案 0 :(得分:2)

如果您有一个应用程序 - 任何Java应用程序,而不仅仅是NetBeans RCP - 并冻结,那么您要做的就是获得线程转储。线程转储几乎总能给出关于为什么会冻结的线索。

Java有5种或6种不同的方式来获取正在运行的应用程序的线程转储(只是google)。在这些方法中,首选的是所谓的Ctrl-Break method,因为它是提供大多数信息的方法。该方法的缺点是您需要从控制台窗口启动应用程序。但是,如果你能够不断地复制冻结,那么我不认为这对你来说是一个问题。以下是您在Windows上的操作:

  1. 开始cmd.exe
  2. 从命令窗口启动您的应用程序,例如bin\sillyapp64.exe
  3. 等待你的申请冻结
  4. 现在在命令窗口中按Ctrl-Break 。这将为您提供一个打印到命令窗口中的线程转储。
  5. 上传线程转储作为您问题的一部分。 (或者如果太大的话,将它托管在某个地方)
  6. Linux / MacOSX的说明类似,但在步骤4中,您将使用kill命令向您的进程发送QUIT信号。