[英]Make JAR as a standalone executable
有沒有辦法將JAR lib轉換為JAR獨立版本? 我需要找到一個將PDF轉換為TIFF的獨立Java可執行文件,並且找到了以下JAR: http : //www.icefaces.org/JForum/posts/list/17504.page
有任何想法嗎?
最簡單的方法是使用Main()入口點創建另一個Jar,然后僅使用java.exe可執行文件運行它:
例如
> java.exe -cp MyJarMain.jar;MyPDFJar.jar com.mydomain.MyMain myPDF.pdf
其中MyMain是具有Main靜態方法的類。
您將需要帶有主入口點的東西來傳遞並解釋一些命令行參數(在我的虛構示例中為myPDF.pdf)
您可以進行匯編(是否正在使用maven?),並確保manifest.mf中的Main-Class條目指向主類。
由於沒有main-Method,因此您必須編寫一個或編寫一個新類來調用該類/方法TiffConver.convertPDF。
問題是,您將如何使用它。 從命令行,您不需要可執行的jar。 在Gui中,也許您想傳遞要通過拖放轉換的文件? 然后,您應該將傳遞給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,作為附加功能。
但是,如果沒有主類,那么一個獨立的jar就是魔術。
但是,建立本地執行程序幾乎總是一個壞主意。 您失去了可移植性,您無法從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文件,從而無聲地覆蓋現有的相同名稱的文件。
我想您現在需要知道如何開始?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.