#java #php #jar
#java #php #jar
Вопрос:
Я запускаю файл jar через php, используя функцию exec ();
Однако мне нужно проверить, поврежден файл jar или нет, используя функцию php.
Комментарии:
1. Если целостность ваших JAR-файлов так важна для вас, рассмотрите возможность использования подписанных JAR-файлов , а затем используйте
jarsigner -verify myjar.jar
для проверки подписи2. Если вы просто беспокоитесь о проблемах с согласованностью файлов, вы могли бы также «просто сохранить» где-нибудь значения md5 и сравнить их. Но я согласен, если вам действительно не все равно, то подписание может быть лучшим подходом!
Ответ №1:
Вы можете проверить, поврежден ли jar с помощью zip, поскольку файл jar представляет собой архивированный файл, так что это даст вам представление:
$myfile = '/my/jar/file.jar';
$zip = new ZipArchive();
$res = $zip->open($myfile, ZipArchive::CHECKCONS);
if ($res !== TRUE) {
switch($res) {
case ZipArchive::ER_NOZIP:
die('not a zip archive');
case ZipArchive::ER_INCONS :
die('consistency check failed');
case ZipArchive::ER_CRC :
die('checksum failed');
default:
die('error ' . $res);
}
}
Для работы с zip-файлами вам потребуется установить расширение php zip