2014-07-22 2 views
3

YUI를 사용하여 CSS 파일을 압축하는 자바 프로그램을 만들고 싶습니다. 자바에서 새로운 학습자입니다.자바 프로그램에서 jar 파일을 실행합니다.

내 코드는 다음과 같습니다

import java.io.BufferedInputStream; 
import java.io.IOException; 

public class Run extends Object 
{ 
    public static void main(String args[]) throws IOException, InterruptedException 
    { 
     System.out.println("Calling jar"); 

     Process p = Runtime.getRuntime().exec("java -Xmx32m -jar yui.jar in.css");  
     BufferedInputStream bis = new BufferedInputStream(p.getInputStream()); 
     synchronized(p) 
     { 
      p.waitFor(); 
     } 

     System.out.println(p.exitValue()); 

     int b = 0; 
     while((b = bis.read()) > 0) 
     { 
      System.out.print((char)b);  
     } 

     System.out.println("Called jar"); 
    } 
} 

내가 here에서 참조했다.

명령 :

java -Xmx32m -jar yui.jar in.css 

는 cmd를 잘 작동하지만 위의 프로그램을 실행할 때 제가 위에서 얻을 출력이 내가 더 출력을 얻을 :

Calling jar 
1 
Called jar 

내가 무엇을 가르쳐주세요 잘못을 저 지르거나이를 수행하는 올바른 방법은 무엇입니까?

+1

http://blog.teamextension.com/yui-compressor-in-java-246 – chf

답변

0

스트림에서 읽을 내용이 없기 때문에 "1"이 표시됩니다.

Eclipse 또는 다른 IDE에서 파일을 실행하려고합니다. 그렇다면 yui.jarin.css 개의 파일을 Run 클래스와 동일한 디렉토리에 배치해야합니다.

기본 실행 구성을 사용하는 경우 파일을 이클립스 프로젝트의 루트 디렉토리에 넣기 만하면됩니다. 예를 들어,이 나를 위해 작동합니다

Test 
    src 
    com 
     test 
     Run.java 
    yui.jar 
    in.css 

상황을 처리하는 더 좋은 방법이 대신 yui.jar 또는 in.css을 specifiying의 절대 또는 상대 경로를 사용하는 것입니다. 두 개의 상대 경로에 대해 두 개의 변수를 작성한 다음 명령 문자열을 작성하십시오.

+0

에 표시된 것처럼 코드에 yui를 통합하지 않는 이유는 무엇입니까 src 디렉토리에서 의미합니까? – user3452098

+0

예, 제가 준 예제 패키지는 com.test 였지만 src 내의 어느 곳에서나 가능합니다. – Xinzz

관련 문제