网上看到大家发的可以通过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的解压算法好像是公开的,网上查查就行。