在Groovy中设置系统属性
请注意:虽然我在这里提到了Swing和MacOS,但这个问题与它们都无关:我只是提供了一个具体的例子,说明我正在尝试做什么在Groovy中设置系统属性,groovy,system-properties,Groovy,System Properties,请注意:虽然我在这里提到了Swing和MacOS,但这个问题与它们都无关:我只是提供了一个具体的例子,说明我正在尝试做什么 我正试图以groovy的方式设置系统属性。如果您正在Mac上开发Swing应用程序,通常会设置以下系统属性,以便Swing应用程序的菜单与典型Mac应用程序的菜单相同: System.setProperty("apple.laf.useScreenMenuBar", "true") 当我在main方法中调用它时,它具有所需的效果(菜单栏从JFrame上拔下并固定在屏幕顶
我正试图以groovy的方式设置系统属性。如果您正在Mac上开发Swing应用程序,通常会设置以下系统属性,以便Swing应用程序的菜单与典型Mac应用程序的菜单相同:
System.setProperty("apple.laf.useScreenMenuBar", "true")
当我在main
方法中调用它时,它具有所需的效果(菜单栏从JFrame
上拔下并固定在屏幕顶部)
但当我试着给groovier打电话时:
System.properties['apple.laf.useScreenMenuBar', 'true']
它不起作用。没有例外,它只是停止工作,在UI中没有预期的效果为什么,我能做些什么来修复它?应该是:
System.properties['apple.laf.useScreenMenuBar'] = true
或
在这段代码中:
System.properties['apple.laf.useScreenMenuBar', 'true']
['apple.laf.useScreenMenuBar','true']
作为键。见下文:
def m = [ [1, 2,]:3, 2:4 ]
assert m[1, 2] == 3
以下代码返回正确的结果:
System.properties['lol'] = 2
assert 2 == System.properties['lol']
或者
System.properties.'apple.laf.useScreenMenuBar'=true
@tim_-yates,可能也是。谢谢@Opal(+1)-有趣的是,这两个都不起作用。他们很可能使用了有效的Groovy语法,但出于某种原因,Swing(或MacOS)拒绝使用它们。我的意思是,菜单不显示为“钉住”/固定在屏幕顶部,独立于JFrame/主窗口。但是当我使用标准Java风格语法(使用setProperty(…)
)时,菜单是固定的。奇怪…@smeeb,不知道为什么它不起作用,但是你使用的语法肯定是错误的。再次感谢你的帮助;标记为正确,并附带特定于用例的警告,即此特定Groovy语法似乎对Mac上用于Swing开发的特定sysprop没有影响。
System.properties['lol'] = 2
assert 2 == System.properties['lol']