У меня есть сервлет, на котором пользователь может загрузить файл .jar, чтобы проверить его MANIFEST.MF
.
Я знаю, что будет работать следующее:
JarInputStream in = new JarInputStream(new ByteArrayInputStream (fileItem.get()));
Manifest mf = in.getManifest();
К сожалению, метод getManifest()
анализирует для Key: Value и нуждается в ":" (двоеточие + пробел), простого двоеточия недостаточно. Поскольку мобильные телефоны, с которыми я работаю, также работают, если в MANIFEST.MF
есть только двоеточия, а не двоеточие + пробел, я бы хотел извлечь MANIFEST.MF вручную, но я не хочу сохранять файл на диске.
Если бы у меня был JarFile, я мог бы проанализировать Манифест с помощью:
JarFile jarFile = new JarFile(fileName);
InputStream in = jarFile.getInputStream(jarFile.getEntry("META-INF/MANIFEST.MF"));
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String line;
while ((line = br.readLine()) != null) {
String[] splitAr = line.split(":", 0);
// ...
Но, к сожалению, я понятия не имею, как я мог бы преобразовать JarInputStream
(или ByteArrayInputStream
) в JarFile
.