小编hol*_*ero的帖子

有没有办法终止使用java3d的java应用程序,而无需调用System.exit()?

Java3D启动了几个系统线程,并没有在它们上设置isDaemon标志.当我处置我的应用程序的(仅)JFrame时,它将不会终止,因为这些线程仍在运行.

调用System.exit()似乎是终止应用程序的唯一方法.(当然,或者从外面杀死它).

由于我不喜欢调用System.exit(),我尝试了以下(但没有成功):

  • 在VirtualUniverse上调用removeAllLocales():这会终止大多数线程,但仍然有一个(名为J3D-Renderer-1).
  • 使用反射获取对javax.media.j3d.MasterControl中的字段ThreadGroup rootThreadGroupp的引用,并在该ThreadGroup上设置isDeamon true.这似乎没有任何影响.
  • 对名为"Java3D"的ThreadGroup进行引用并对其调用interrupt():这导致java3d线程将InterruptedException写入stderr,但没有别的.
  • 找到Java3d核心库的源代码并提出一个补丁:我在这里找到了一个存储库:https://github.com/hharrison/java3d-core和这里:https://java.net/projects/j3d-core/来源.后一个看起来是"官方的",但显示它发生在5年前的最后一次变化,而前者看起来像是一个私人分叉给我.

我接近放弃并调用System.exit(),但我仍然不喜欢它.你知道更好的方法吗?

java java-3d

13
推荐指数
1
解决办法
640
查看次数

如何用jq将json文档中的空值替换为特定值?

我有一个包含的json文件 nulls as values for some keys, which I would like to replace with some specific value.

鉴于此输入:

{
  "id": null,
  "rows": [
    {
      "panels": [
        {
          "title": "Panel1",
          "datasource": null
        },
        {
          "title": "Panel2",
          "datasource": null
        }
      ]
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

我想拥有

{
  "id": null,
  "rows": [
    {
      "panels": [
        {
          "title": "Panel1",
          "datasource": "mydb"
        },
        {
          "title": "Panel2",
          "datasource": "mydb"
        }
        ]
     }
  ]
}
Run Code Online (Sandbox Code Playgroud)

What I currently use is

sed 's/"datasource": null/"datasource": "mydb"/'
Run Code Online (Sandbox Code Playgroud)

This produces the …

json jq

1
推荐指数
1
解决办法
2832
查看次数

标签 统计

java ×1

java-3d ×1

jq ×1

json ×1