Во-первых, у меня нет опыта в этом. Но, как и в начале любой хорошей программы, у меня есть проблема, которую мне нужно исправить, поэтому я готов учиться.
Многие из вас, вероятно, уже знакомы с pdftk, удобной утилитой для обработки различных задач, связанных с pdf. Насколько я могу судить, большинство этих функций доступно в гораздо более новых, более легких библиотеках / расширениях, кроме той, которая мне нужна (и, вероятно, единственная причина, по которой она все еще существует): объединение файлов данных форм (fdf и xfdf) с формой PDF и получение нового файла в качестве вывода.
Проблема в том, что на моем сервере нет gcj, что является фундаментальным для сборки / компиляции pdftk. Я не знаю, потому что я нахожусь на Солярисе или по какой-то другой причине уровня системного администратора, но я не получаю gcj в ближайшее время. Насколько я могу найти, для Solaris нет предварительно скомпилированных двоичных файлов.
Так что я думаю, что файл MAKE и код C можно переписать для импорта библиотеки Java (очень древняя версия itext) напрямую через javac.
Но я не уверен, с чего начать. Все, что я знаю, это:
- Мне нужен двоичный файл, когда я закончу, чтобы не требовалась виртуальная машина Java при каждом использовании.
- Текущее приложение использует GCJ.
Итак, моей первой мыслью было: «О, это легко, я могу просто вызвать классы с помощью другого метода на основе Си», но вместо того, чтобы найти простой метод для этого, я нахожу тонны длинных постов на различные углы, к которым можно приблизиться, и т. д.
Затем я нашел страницу на сайте Sun о том, как называть другие языки (например, C) в классе Java. Но проблемы с этим подходом:
- Я должен написать оболочку для оболочки
- Возможно, мне лучше пропустить эту часть и написать все это на Java
- Я пока не готов к этому, если я могу просто импортировать классы с тем, что уже есть
- Мне неясно, смогу ли я скомпилировать и получить двоичный файл в конце, или я пойман в ловушку в Java, которая нужна каждый раз.
Опять же, я прошу прощения за свое невежество. Мне просто нужны советы и примеры того, как можно заменить GCJ-зависимый код C чем-то, что работает непосредственно с Java.
И, конечно, если я задам один из тех вопросов типа "если бы мы могли это сделать, мы уже были бы богаты", дайте мне знать.