Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java程序中执行jar文件_Java - Fatal编程技术网

在java程序中执行jar文件

在java程序中执行jar文件,java,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

我想创建一个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");
    }
}
我引用了他的参考资料

命令:

java -Xmx32m -jar yui.jar in.css
在cmd中工作正常,但当我运行上述程序时,没有输出 我从上面得到的输出是:

Calling jar
1
Called jar
请告诉我我做错了什么,或者正确的做法是什么。

您得到的是“1”,因为流中没有可读取的内容

我猜您正在尝试从Eclipse或其他IDE运行该文件。如果是这样,您需要将
yui.jar
in.css
文件放置到与
Run
类所在的目录相同的目录中

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

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

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

为什么不在代码中集成yui,如中所示?您的意思是在src目录中吗?是的,我给出的示例包是com.test,但在src中的任何位置。