Java呼叫shell命令解壓.7z壓縮包
Linux下解壓.7z壓縮包,java呼叫shell命令執行,解壓速度是java程式解壓的幾十倍乃至更多,首先確認主機上已安裝.7z命令。
package com.annet.upload.core.utils;
import java.io.BufferedReader;
import java.io.FileOutputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
* 執行shell解壓命令
*
* @author yanhu
* @date 2017/12/11
*/
public class ShellUtils {
// 基本路徑
private static final String basePath = "/tmp/";
// 記錄Shell執行狀況的日誌檔案的位置(絕對路徑)
private static final String executeShellLogFile = basePath + "executeShell.log";
private static Logger logger = LoggerFactory.getLogger(ShellUtils.class);
public static int executeShell(String shellCommand) throws Exception {
int success = 0;
StringBuffer stringBuffer = new StringBuffer();
BufferedReader bufferedReader = null ;
// 格式化日期時間,記錄日誌時使用
DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:SS ");
try {
stringBuffer.append(dateFormat.format(new Date())).append("準備執行Shell命令 ").append(shellCommand)
.append("\r\n");
Process pid = null;
String[] cmd = { "/bin/sh", "-c", shellCommand };
// 執行Shell命令
pid = Runtime.getRuntime().exec(cmd);
if (pid != null) {
stringBuffer.append("程序號:").append(pid.toString()).append("\r\n");
// bufferedReader用於讀取Shell的輸出內容
bufferedReader = new BufferedReader(new InputStreamReader(pid.getInputStream()), 1024);
pid.waitFor();
} else {
stringBuffer.append("沒有pid\r\n");
}
stringBuffer.append(dateFormat.format(new Date())).append("Shell命令執行完畢\r\n執行結果為:\r\n");
String line = null;
// 讀取Shell的輸出內容,並新增到stringBuffer中
while (bufferedReader != null && (line = bufferedReader.readLine()) != null) {
stringBuffer.append(line).append("\r\n");
}
logger.info("解壓完成");
} catch (Exception ioe) {
logger.error("執行Shell命令時發生異常:" + ioe.getMessage());
stringBuffer.append("執行Shell命令時發生異常:\r\n").append(ioe.getMessage()).append("\r\n");
throw ioe;
} finally {
if (bufferedReader != null) {
OutputStreamWriter outputStreamWriter = null;
try {
bufferedReader.close();
// 將Shell的執行情況輸出到日誌檔案中
OutputStream outputStream = new FileOutputStream(executeShellLogFile);
outputStreamWriter = new OutputStreamWriter(outputStream, "UTF-8");
outputStreamWriter.write(stringBuffer.toString());
} catch (Exception e) {
e.printStackTrace();
} finally {
outputStreamWriter.close();
}
}
success = 1;
}
return success;
}
}
try {
long start = System.currentTimeMillis();
logger.info("開始解壓:" + inputPath);
//拼接shell解壓命令
shellCode = "7za -p" + password + " x " + inputPath + " -r -o" + unzipPath;
ShellUtils.executeShell(shellCode);
logger.info("解壓耗時:" + ((System.currentTimeMillis() - start) / 1000) + "S");
} catch (Exception e) {
e.printStackTrace();
return;
}
相關推薦
Java呼叫shell命令解壓.7z壓縮包
Linux下解壓.7z壓縮包,java呼叫shell命令執行,解壓速度是java程式解壓的幾十倍乃至更多,首先確認主機上已安裝.7z命令。 package com.annet.upload.core.utils; import java.io.Buffe
Java 解壓zip壓縮包
ice gin inpu ret zipentry .get get next exce 因為最近項目需要批量上傳文件,而這裏的批量就是將文件壓縮在了一個zip包裏,然後讀取文件進行解析文件裏的內容。 因此需要先對上傳的zip包進行解壓。以下直接提供代碼供參考: 1.第一個
java呼叫shell命令並獲取執行結果
原文地址:http://blog.csdn.net/arkblue/article/details/7897396 使用到Process和Runtime兩個類,返回值通過Process類的getInputStream()方法獲取 package ark;
Java呼叫Shell命令和指令碼
1.介紹 有時候我們在Linux中執行Java程式時,需要呼叫一些Shell命令和指令碼。而Runtime.getRuntime().exec()方法給我們提供了這個功能,而且Runtime.getRuntime()給我們提供了以下幾種exec()方法: Process e
Mac上zip,rar,tar檔案命令解壓和壓縮
經常遇到在windowns上的壓縮檔案,在mac上解壓出現問題,特意總結了下在Terminal裡常用命令的方式解壓和壓縮檔案 1、zip壓縮檔案 zip命令的引數很多,可以利用"zip --help"
python程序解壓rar壓縮包報錯
ould gcc-c++ root 產生 pytho oot exp import 依賴包 運行如下python程序報錯Couldn't find path to unrar library的解決辦法:#!/usr/bin/python #-*- coding:ut
C++解壓zip壓縮包(2)
由於上一篇部落格寫的比較急,沒有給出直接執行的程式碼跟演示,這裡我重新寫了一個專案 上一篇部落格C++解壓壓縮檔案 上一篇部落格中有ziputils官網的連結更下載地址,使用方法還是一樣,向專案中新增檔案 #include <Windows.h> //新
python 解壓zip壓縮包
在當前路徑解壓zip壓縮包,生成同名資料夾,內部目錄結構與壓縮包一致 import zipfile import os def un_zip(file_name): """unzip zip file""" zip_file = zipfile.ZipFile(
PHP解壓ZIP壓縮包,解決中文亂碼問題
修復原生ZipArchive的中文亂碼問題 測試環境是windows10 中文的zip壓縮包名和中文的檔名會導致PHP原生自帶的ZipArchive亂碼,導致extractTo方法失效: &l
JAVA利用cmd命令列呼叫WINRAR解壓及壓縮
JAVA利用cmd命令列呼叫WINRAR解壓及壓縮 前言 對於zip檔案,java有自帶類庫java.util.zip;可是要想解壓rar檔案只能靠第三方類庫,我試過兩個:com.github.junrar和de.innosystec.u
Java解壓.7z格式壓縮包
package com.annet.upload.core.utils; import java.io.File; import java.io.FileOutputStream; import java.io.RandomAccessFile; import
java中呼叫shell命令
import java.io.BufferedReader; import java.io.InputStreamReader; public class Shell { public static void main(String[] args) { String command =
Java 壓縮解壓通用工具包 ZIP TAR GZ
import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.FileOutp
Linux 伺服器下解壓、壓縮命令
1.壓縮命令: 命令格式:tar -zcvf 壓縮檔名.tar.gz 被壓縮檔名 2.解壓縮命令: 命令格式:tar -zxvf &nb
shell指令碼 解壓刪除 在壓縮
#建立資料夾 mkdir -p /tmp/jarDel/; rm -rf /tmp/jarDel/*; #找到jar mv /weblogic/gt3nf-service-gdslhbs/WEB-INF/lib/gov.chinatax.gt3nf-2* /tmp/jarDel/ ; #進入到目
shell指令碼小工具之萬能解壓和壓縮器---實現思路
本人也是接觸linux很久了。但是對系統的架構也是一知半解,平時的使用情況也就是一鍵安裝lnmp,頂多裝redis,自己一直都專注於web開發,很少去接觸系統運維方面的知識。一直覺得linux是一個很高大上的系統,一出錯我根本無從下手。只能把錯誤丟給百度,或者goo
java 解壓和壓縮
最近經常用到解壓和壓縮,一般支援rar和zip, rar:只有解壓是共享的,所以用到rar.exe解壓rar。壓縮的話使用zip.exe壓縮 兩個exe見附件。 zip:java自帶jar包,但是隻支援utf-8編碼,解壓遇到非utf8中文就會出錯。 整合了一個zip.ja
pyhton system 使用7z解壓和壓縮
#coding:utf-8import os '''環境:windows10 壓縮工具:7z.exe實現語言:python語言版本:2.7*****網上提供了一堆坑人的解壓方法,本想省點事快速搞定 奶奶個腿的 都怪自己太懶反倒浪費了更多時間****這裡只針對壓縮和解壓縮檔
unix下常用解壓和壓縮命令
.tar解包: tar xvf FileName.tar打包:tar cvf FileName.tar DirName(注:tar是打包,不是壓縮!)---------------------------------------------.gz解壓1:gunzip File
Linux 檔案的解壓和壓縮 —— gzip命令
一、gzip 命令的用途 gzip 是在 Linux 系統中經常使用的一個對檔案進行壓縮和解壓縮的命令 減少檔案大小有兩個明顯的好處,一是可以減少儲存空間,二是通過網路傳輸檔案時,可以減少傳輸的時間