Мне было интересно, можно ли извлечь содержимое файла .jar в другой каталог, затем добавить несколько файлов в этот каталог, а затем сжать каталог обратно в файл .jar с добавлениями. Найденный мною файл jar можно было использовать NSTask
для выполнения команды терминала jar xf (location of jar file)
. Это сработало, но оно навсегда остановило пользовательский интерфейс программы (без сбоев) и разархивировало содержимое в каталог, в котором хранилось приложение, что было небольшим беспорядком для очистки. Есть ли другой способ сделать это, или я неправильно использую NSTask
? Вот код, который я использую:
//Unarchive the jar
[self runCommandWithBase:@"/usr/bin/jar" arguments:[NSArray arrayWithObjects:@"xf", jarLocation, nil]];
и
- (NSString *)runCommandWithBase:(NSString *)base arguments:(NSArray *)arguments {
//Create the task
NSTask *task = [[NSTask alloc] init];
//Setup the task
[task setLaunchPath:base];
[task setArguments:arguments];
[task setStandardInput:[NSPipe pipe]];
[task setStandardOutput:[NSPipe pipe]];
//Set file handle
NSFileHandle *file = [[NSPipe pipe] fileHandleForReading];
//Run the command
[task launch];
//Return
NSData *returnData = [file readDataToEndOfFile];
return [[NSString alloc] initWithData:returnData encoding:NSUTF8StringEncoding];}
Может быть, есть способ включить приложение Java в XCode, которое разархивирует файлы, добавит другие файлы, а затем повторно сожмет его? Затем выполните Java-приложение с NSTask
?
Заранее спасибо,
Ben