2014-02-08 2 views
0

사용 Linux에서 java/groovy를 사용하여 활성 창 이름을 검색하여 문자열에 저장하고 싶지만 명령이 작동하지 않습니다. 끈.활성 창 제목을 자바로 반환하십시오.

import groovy.swing.SwingBuilder 
import javax.swing.JFrame 

curText = "xdotool getwindowname \$(xdotool getwindowfocus)".execute().text 

new SwingBuilder().edt { optionPane().showMessageDialog(null, '#'+curText+'#') } 

답변

1

분할이 아니라 하나의 execute()에 두 가지를 모두 수행하는 것보다 두 가지의 명령이 나를 위해 일했다 :

import groovy.swing.SwingBuilder 
import javax.swing.JFrame 

id = "xdotool getwindowfocus".execute().text 
curText = "/usr/bin/xdotool getwindowname $id".execute().text 

new SwingBuilder().edt { optionPane().showMessageDialog(null, '#'+curText+'#') } 

를이 경우, groovyConsole에, 나는 가지고 :

#GroovyConsole 
# 

희망이 도움이됩니다!

+0

브릴리언트 - 매력을 발휘합니다. 나는 똑같이 시도했지만 괄호가 필요 없다는 것을 깨닫지 못했습니다. – David

+0

BASH의'$ ()'구문은 내부 명령이 외부 명령보다 먼저 평가되고 그 결과가 대신 적용된다는 것을 의미합니다. 이 경우 우리는 그루비 스크립트에서 BASH 치환을 사용하지 않고 'id'에 넣고 있습니다. 이 대답이 도움이 되었다면 그것을 잊어 버리지 말고 받아 들인 대답으로 표시하십시오! :) –

+0

나는 이미 투표를 시도했지만 충분한 명성을 얻지 못해 잠시 기다려야 할 수도 있습니다. 죄송합니다. – David

관련 문제