有没有办法将JAR lib转换为独立的JAR? 我需要找到一个将PDF转换为TIFF的独立java可执行文件,我找到了这些JAR:http://www.icefaces.org/JForum/posts/list/17504.page
有什么想法吗?
答案 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,以静默方式覆盖现有的同名文件。
我想您现在需要知道如何启动它?