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

depositpei 2014-06-24 11:28:47
网上看到大家发的可以通过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变量又有什么关系呢?
...全文
291 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
你解压还是压缩,解压的话winrar的解压算法好像是公开的,网上查查就行。
depositpei 2014-06-25
  • 打赏
  • 举报
回复
引用 2 楼 xinlan1022 的回复:
把你的命令放到服务器的cmd里执行一下看行不行
可以正确执行
xinlan1022 2014-06-25
  • 打赏
  • 举报
回复
把你的命令放到服务器的cmd里执行一下看行不行
depositpei 2014-06-24
  • 打赏
  • 举报
回复
我说的服务端是 是纯java的系统,有自己的jre,难道是要在启动的系统的 jvm参数中修改什么变量,把7-zip的安装路径加入进去,让java执行7z.exe的时候可以找到他吗?

67,542

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧