2014-02-05 3 views
0

내 번들에는 Resources 폴더에 스크립트 (.bat 및 .sh)가 포함되어 있습니다. 번들 안에서이 스크립트를 실행해야합니다.번들 내 스크립트 (.bat 및 .sh) 실행

어떻게하면 OSGi 세계에서이를 달성 할 수 있습니까? 예제는 a.w.e.s.o.m.e가 될 것입니다.

+0

일반 Java 프로그램을 사용하여 스크립트를 실행할 수 있습니까? 서비스 클래스 내에서 실행 중 오류가 무엇입니까? – Cristiano

답변

0

스크립트를 실행하려면 Runtime.exec (..)을 사용하여 쉘 (sh, bash 등)을 실행하십시오. 이 셸은 파일로 제공되거나 표준 입력에서 읽을 수있는 스크립트를 실행할 수 있습니다. 후자의 옵션은 여기에서 활용할 수 있습니다. Runtime.exec (..)는 Process 객체를 반환하고 입력 스트림과 출력 스트림을 얻을 수 있습니다. 여기 How do I access a file inside an OSGi bundle?에 설명 된대로 번들에서 리소스를 가져 와서 해당 데이터를 스트림에 전달합니다.

0

번들이 활성 상태가 될 때 스크립트를 수행해야한다고 가정합니까? 번들에서 Activator (BundleActivator 인터페이스 구현)를 생성하고 스크립트를 실행할 수 있습니다.

귀하의 스크립트가하는 일은 확실하지 않지만 개인적으로 저는 스크립트를 사용하지 않으며 사물을 다르게하려고합니다.

+0

네, 물론 활성화되면 (실제로이 번들에 의해 제공되는 서비스가 호출 될 때 실행됩니다.)이 서비스는 스크립트를 실행해야합니다. (문제는 내가 실행할 수 없다는 것입니다. 번들 내부의 스크립트) –