Во-первых, у меня нет опыта в этом. Но, как начало любой хорошей программы, у меня есть проблема, которую мне нужно исправить, поэтому я хочу учиться.Объединение Java и C без gcj - переместить C на Java или Java на C?
Многие из вас, вероятно, уже знакомы с pdftk, удобной утилитой для обработки различных задач, связанных с PDF. Насколько я могу судить, большинство из этих функций доступны в гораздо более новых, более легких библиотеках/расширениях, за исключением той, которая мне нужна (и, вероятно, единственная причина, по которой она все еще существует): объединение файлов данных формы (fdf и xfdf) с формой PDF и получение нового файла в качестве выходного.
Проблема в том, что у моего сервера нет gcj, что является основополагающим для сборки/компиляции pdftk. Я не знаю, связано ли это с тем, что я нахожусь в Solaris, или если это для какой-то другой причины на уровне системного администратора, но я не буду получать gcj в ближайшее время. И, насколько я могу найти, для Solaris нет предварительно скомпилированных двоичных файлов.
Так что я думаю, что файл MAKE и код C можно переписать, чтобы напрямую импортировать библиотеку Java (очень древнюю версию itext) через javac.
Но я не уверен, где начать. Все, что я знаю, это:
- Я хочу двоичный код, когда закончите, так что не будет необходимости в виртуальной машине Java при каждом использовании.
- В текущем приложении используется GCJ.
Итак, моя первая мысль была «О, это легко, я могу, возможно, просто назвать классы с помощью другого метода на основе С», но вместо того, чтобы найти простой способ для этого, я нахожу массу длинные сообщения на разных углах, к которым это можно подойти, и т. д.
Затем я нашел страницу на веб-сайте Sun о том, как вызвать другие языки (например, C) в классе Java. Но проблемы с этим подходом являются:
- я должен был бы написать оболочку для оболочки
- я бы, вероятно, лучше пропустить эту часть и писать все это в Java
- I Ain 't готов к этому, но если я могу просто импортировать классы с тем, что уже существует
- Я не понимаю, могу ли я скомпилировать и получить двоичный код в конце, или если я в ловушке Java, время.
Опять же, прошу прощения за мое невежество. Мне просто нужны советы и примеры того, как заменить GC-зависимый код C тем, что работает непосредственно с Java.
И, конечно, если я попрошу одного из тех, «если бы мы могли это сделать, мы были бы богаты уже», задайте вопросы, дайте мне знать.
Если я могу получить GCJ компилируется в моей домашней директории, у меня есть такой огромный декламация. До сих пор я думаю, что что-то упускаю. Он говорит «нет входных файлов», когда я помещаю в 'gcc --bindir = ~/bin --enable-languages = java, c', значит ли это, что мне нужна локальная версия gcc, которую я создаю? Поскольку попытки сделать gcj solo ранее казались непригодными без компиляции gcc с gcc. Дополнительные ссылки приветствуются. – Anthony
@finnw Спасибо. Я никогда не слышал о JACOB. Добавление в ответ – KitsuneYMG
Извините, чтобы напомнить, но просто быстро подтвердите: мне нужно иметь полный gcc tar, прежде чем я смогу скомпилировать gcj в своем домашнем каталоге? – Anthony