在java程序中执行jar文件

时间:2014-07-22 12:55:51

标签: java

我想创建一个java程序来使用YUI压缩css文件 我是java的新学习者。

我的代码是:

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 个答案:

答案 0 :(得分:0)

你正在获得" 1"因为在流中没有什么可读的。

我猜你正在尝试从Eclipse或其他IDE运行该文件。如果是这样,您需要将yui.jarin.css文件放在相对于Run课程所在目录的相同目录中。

如果您正在使用默认运行配置,那么您只想将文件放入eclipse项目的根目录中。例如,这对我有用:

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

处理您的情况的更好方法是使用绝对或相对路径,而不是仅指定yui.jarin.css。为两个相对路径创建两个变量,然后创建命令字符串。