当前位置: 代码迷 >> J2EE >> java中Runtime.getRuntime().exec(cmd)调用7-zip解压文件,本地可以,放在除此而外服务端确不行
  详细解决方案

java中Runtime.getRuntime().exec(cmd)调用7-zip解压文件,本地可以,放在除此而外服务端确不行

热度:581   发布时间:2016-04-17 23:48:49.0
java中Runtime.getRuntime().exec(cmd)调用7-zip解压文件,本地可以,放在另外服务端确不行
网上看到大家发的可以通过java使用命令式形式的方式调用系统命令,代码片如下:
然后我改写了下,调用我7zip
public static boolean zip(String zipfile, String foler) {
                //winrar软件的安装路径 
               String rarPath = "7z"; 
               String cmd="";
             // cmd=rarPath+" m -p123456" + zipfile +" "+ foler;//每个文件都要加密
             // cmd = rarPath + " m -hp123456 " + zipfile + "  "+ foler;//整个压缩文件加密,
            try {
                         Process proc = Runtime.getRuntime().exec(cmd);
                         if (proc.waitFor() != 0) {
                                     if (proc.exitValue() == 0)
                                                return true;
                         }
          } catch (Exception e) {
                      e.printStackTrace(); 
          }
          return false; 

以上代码我本地测试是可以通过的,而且我本地机器安装了7-zip工具,也把7-zip加入到了环境变量中了,但是把这份代码上传到服务器段执行就是失败,报的错误是无法执行 7z命令,感觉是服务端没有找到 7z.exe这个可执行文件,但是服务端我也安装了7-zip,也加入了环境变量啊,难道是因为服务端的 jvm启动的时候  java.library.path 这个环境变量中没有加入7-zip吗?
 java.library.path跟操作系统的path变量又有什么关系呢?
------解决方案--------------------
把你的命令放到服务器的cmd里执行一下看行不行
------解决方案--------------------
你解压还是压缩,解压的话winrar的解压算法好像是公开的,网上查查就行。
  相关解决方案