将JAR作为独立的可执行文件

时间:2011-02-21 13:04:20

标签: java jar

有没有办法将JAR lib转换为独立的JAR? 我需要找到一个将PDF转换为TIFF的独立java可执行文件,我找到了这些JAR:http://www.icefaces.org/JForum/posts/list/17504.page

有什么想法吗?

3 个答案:

答案 0 :(得分:1)

最简单的可能是使用Main()入口点创建另一个Jar,然后只使用java.exe可执行文件来运行它:

e.g。

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

MyMain是一个带有Main静态方法的类。

你需要一些带有主入口点的东西来传入并解释一些命令行参数(在我的假设示例中为myPDF.pdf)

答案 1 :(得分:0)

你可以做一个程序集(你使用maven吗?)并确保manifest.mf中的Main-Class条目指向主类。

答案 2 :(得分:0)

由于没有main-Method,你必须编写一个,或编写一个全新的类来调用类/方法TiffConver.convertPDF。

问题是,你将如何使用它。从命令行,您不需要可执行jar。从Gui,也许你想通过拖放传递一个文件进行转换?然后你应该将传递给main的参数作为输入PDF名称(如果它们以.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();
}

也许你不想写一个swing-wrapper,让你选择以交互方式转换文件。如果没有给出文件名,这将是一个很好的想法。

如果用户传递“a.pdf xy.tiff”,您可以将转换后的文件重命名为xy,作为附加功能。

然而,如果没有一个主类,一个独立的jar将是神奇的。

但是,构建本机执行程序几乎总是一个坏主意。您放弃了可移植性,您无法从JVM或修复的错误的安全性和性能改进中获益。对于多个程序,如果你没有像大多数Linux发行版那样的软件包管理,你需要一个独立的bug修复程序,你可能需要自己管理。


清除一些问题后

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-File,并生成一个具有相同基本名称但以.tif结尾的tif-File,以静默方式覆盖现有的同名文件。

我想您现在需要知道如何启动它?