По сути, у меня есть файл Jar, способный анализировать файлы Java, и выполнить некоторые вычисления на основе проанализированных значений.
Проблема в том, что грамматика в этом фляге старая и поддерживает только версию 1.5 Java. Я оглянулся и нашел грамматику, выпущенную той же компанией, которая поддерживает Java версии 1.8, поэтому я хочу обновить файл Jar двумя обновленными файлами, необходимыми приложению.
Анализируя файл Jar с помощью JD-GUI, я вижу, что это местоположение двух файлов, которые я хочу обновить:
JarDir/foo/bar/Java.g
JarDir/foo/bar/JavaTreeParser.g
Сначала я последовал предложению и попытался использовать 7-zip для редактирования обоих файлов. Я в основном открыл файл Jar с помощью 7-zip, нашел файлы и отредактировал их содержимое. После попытки «обновить» Jar, похоже, работает так же, как и до его обновления. Например, он все еще не может разобрать этот ArrayList<String> s = new ArrayList<>();
, так как оператор diamond является дополнением Java 7.
Теперь я думал об использовании jar uf
подобно , который предлагает этот ответ , но я не знаю, как указать путь, который я хочу вставить в Jar.
Может кто-нибудь помочь мне с этим?