Java Jar控制台应用程序打开Mac系统菜单栏

Java Jar控制台应用程序打开Mac系统菜单栏,java,macos,swing,gradle,jar,Java,Macos,Swing,Gradle,Jar,我有一个Java控制台应用程序,当我运行Java-jar jarfile.jar时,它会打开Mac上的系统菜单栏(屏幕顶部的菜单栏)。我不使用Swing,也没有任何GUI。菜单栏中的应用程序名称仅为,菜单仅包含例如About、Quit 因为我在运行脚本时多次调用它,这对我来说有点麻烦,我想禁用它 我使用gradle来构建jar,如下所示: jar { baseName = 'appname' from(configurations.compile.collect { it.isDirec

我有一个Java控制台应用程序,当我运行
Java-jar jarfile.jar
时,它会打开Mac上的系统菜单栏(屏幕顶部的菜单栏)。我不使用Swing,也没有任何GUI。菜单栏中的应用程序名称仅为
,菜单仅包含例如About、Quit

因为我在运行脚本时多次调用它,这对我来说有点麻烦,我想禁用它

我使用gradle来构建jar,如下所示:

jar {
  baseName = 'appname'
  from(configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }) {
    exclude "META-INF/*.SF"
    exclude "META-INF/*.DSA"
    exclude "META-INF/*.RSA"
  }

  def commit = "git rev-parse --short HEAD".execute().text.trim()

  manifest {
    attributes(
      'Implementation-Title': 'appname',
      'Implementation-Version': '1.0',
      'Commit-Id': commit,
      'Built-By': System.getProperty('user.name'),
      'Built-Date': new Date(),
      'Built-JDK': System.getProperty('java.version'),
      'Main-Class': mainClassName
    )
  }
}

dependencies {
  compile 'com.lowagie:itext:2.1.3'
  compile 'com.itextpdf:itext-hyph-xml:5.1.0'
}
这可能吗?你还需要其他信息吗?不幸的是,我不知道菜单栏出现的原因,所以我真的不知道我还应该提供什么


我创建了一个示例gradle项目:没有菜单栏,即使我添加了依赖项。我还尝试设置属性apple.laf.useScreenMenuBar,但这对我也没有任何影响。

如果添加以下命令行选项:

-Djava.awt.headless=true
到脚本中的
java
命令行,AWT将不会尝试初始化自身,并且不会显示菜单栏等GUI元素

这可能吗

如中所述,某些“重量级组件需要操作系统级别的对等组件”。Mac OS X通过添加可按建议修改的最小条目,将包含此类组件的应用程序集成到桌面环境中。当实例化这样一个重量级组件时,甚至是惰性地,都会触发该行为。使用可能有助于识别有问题的容器。Bug报告表明,这个问题很难用任何通用性来解决


作为参考,它有一个类似的问题,需要使用一个特殊的
headless.jar
,在中工作;例如,gradle也可以采用类似的方法,但我还没有尝试过。

谢谢您的回答!