Сделать JAR как отдельный исполняемый файл - PullRequest
1 голос
/ 21 февраля 2011

Есть ли способ конвертировать JAR lib в автономный JAR? Мне нужно найти отдельный исполняемый файл Java, который конвертирует PDF в TIFF, и я нашел следующие JAR: http://www.icefaces.org/JForum/posts/list/17504.page

Есть идеи?

Ответы [ 3 ]

1 голос
/ 21 февраля 2011

Проще всего создать еще один Jar-файл с точкой входа Main (), а затем просто запустить исполняемый файл java.exe:

например,

> java.exe -cp MyJarMain.jar;MyPDFJar.jar com.mydomain.MyMain myPDF.pdf

Где MyMainкласс со статическим методом Main.

Вам понадобится что-то с главной точкой входа для передачи и интерпретации некоторых аргументов командной строки (myPDF.pdf в моем подготовленном примере)

0 голосов
/ 21 февраля 2011

Поскольку нет метода main, вам нужно написать один или написать совершенно новый класс для вызова класса / метода TiffConver.convertPDF.

Вопрос в том, как вы собираетесь его использовать.Из командной строки вам не нужен исполняемый файл jar.Возможно, вы хотите передать файл, который будет конвертирован, с помощью перетаскивания?Затем вы должны взять параметры, переданные в main, как Input-PDF-Names (если они заканчиваются на .pdf) и передать имена итеративно в TiffConverter, для «a.pdf b.pdf» => TiffConver.convertPDF (»a.pdf "," a.tiff ");TiffConver.convertPDF ("b.pdf", "b.tiff");

TiffCoverter будет молча перезаписывать существующие tiff, так что проверяйте это перед изменением или изменяйте код там - это явно плохая привычка, и ищите больше таких вещей - я этого не делал.

/*
 * Remove target file if exists
 */
File f = new File(tif);
if (f.exists()) {
    f.delete();
}

Может быть, вы не хотите писать свинг-оболочку, которая позволяет интерактивно выбирать файлы для конвертации.Это было бы неплохо, если имя файла не указано.

Если пользователь передает «a.pdf xy.tiff», вы можете переименовать преобразованный файл в xy в качестве дополнительной функции.

Однако без основного класса автономная банка была бы магией.

Тем не менее, создание нативного исполняемого кода - почти всегда плохая идея.Вы теряете мобильность, вы не получаете выгоды от повышения безопасности и производительности JVM или исправления ошибок.Для нескольких программ вам всегда нужно независимое исправление, которым вы, возможно, придется управлять самостоятельно, если у вас нет управления пакетами, как в большинстве дистрибутивов Linux.


после устранения некоторых вопросов:

public static void main (String [] args) {

    if (args.length == 1 && args[0].endsWith (".pdf")) {
        String target = args[0].replaceAll (".pdf$", ".tif");
        convertPDF (args[0], target);
    }
}

Этот метод вы добавили в TiffConvert.Это позволит вам преобразовать простой pdf-файл и сгенерировать tif-файл с тем же базовым именем, но заканчивающимся на .tif, без перезаписи существующего с тем же именем.

Полагаю, теперь вам нужно знать, как начать?

0 голосов
/ 21 февраля 2011

Вы можете сделать сборку (вы используете maven?) И убедиться, что запись Main-Class в manifest.mf указывает на основной класс.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...