在Groovy中设置系统属性

sme*_*eeb 5 groovy system-properties

请注意:虽然我在这里提到了Swing和MacOS,但这个问题与它们中的任何一个都没有关系:我只是将它们作为我正在尝试做的具体例子.


我正在尝试以常规的方式设置系统属性.如果您在Mac上开发Swing应用程序,通常的做法是设置以下系统属性,以便您的Swing应用程序菜单看起来与典型的Mac应用程序相同:

System.setProperty("apple.laf.useScreenMenuBar", "true")
Run Code Online (Sandbox Code Playgroud)

当我在我的main方法中调用它时,它具有所需的效果(菜单栏被拉出JFrame并被固定在屏幕顶部).

但是当我去试着让那个叫做groovier的时候:

System.properties['apple.laf.useScreenMenuBar', 'true']
Run Code Online (Sandbox Code Playgroud)

它不起作用.没有例外,它只是停止工作并且在UI中没有所需的效果.为什么,我该怎么做才能解决它?

Opa*_*pal 14

应该:

System.properties['apple.laf.useScreenMenuBar'] = true
Run Code Online (Sandbox Code Playgroud)

要么

System.properties.'apple.laf.useScreenMenuBar' = true 
Run Code Online (Sandbox Code Playgroud)

在这段代码中:

System.properties['apple.laf.useScreenMenuBar', 'true']
Run Code Online (Sandbox Code Playgroud)

['apple.laf.useScreenMenuBar', 'true']被视为关键.见下文:

def m = [ [1, 2,]:3, 2:4 ]
assert m[1, 2] == 3
Run Code Online (Sandbox Code Playgroud)

以下代码返回正确的结果:

System.properties['lol'] = 2

assert 2 == System.properties['lol']
Run Code Online (Sandbox Code Playgroud)

  • 或者`System.properties.'apple.laf.useScreenMenuBar'= true` (2认同)