[英]Configure Launch4J to use 32-bit JVM only
我正在使用Launch4J來啟動我的Java應用程序,如果系統上存在x64 JRE,則Launch4J似乎更喜歡它。
不幸的是我的應用程序無法在64位JVM上運行,因為我正在加載32位DLL,這是不可能的,並導致UnsatisfiedLinkError。
有沒有辦法強制/欺騙Launch4J只使用32位JVM?
我有完全相同的問題:如果安裝了32位64位JDK / JRE,則進入64位環境,此工具始終檢測64位版本。 我修補了源代碼(java + C ++)代碼來制作我自己的版本並重新編譯所有代碼。 我添加了一個復選框,將32位JDK / JRE檢測強制轉換為64位窗口環境。 只需下載該版本並將其用作原始版本。
大約一年前我遇到了這個問題,使用Lauch4J來包裝一個需要32位DLL的小型Java程序(swt-win32.dll,因為它發生了)。
我發現如果安裝了32位和64位JVM,Launch4J總是支持64位JVM。 它只有在卸載64位JVM時才有效,這顯然不是一個實用的解決方案。
我發現沒有辦法讓Launch4J更喜歡(並要求)32位JVM,經過大量搜索並在論壇上發布問題。
因此,我評估了大量替代JRE轉換器(我使用此列表: http : //www.excelsior-usa.com/articles/java-to-exe.html )。
我最終選擇了Jar2Exe,這是唯一一個擁有我需要的功能的人。 它不是免費的,雖然有一個評估版本,我認為它並不昂貴。
希望這可以幫助!
我前段時間遇到了同樣的問題並分叉了項目,因此用戶界面公開了一個強制應該找到32位JVM的選項,你可以使用以下補丁獲取launch4j 3.0.3的安裝程序:
http://fbergmann.github.io/launch4j/files/SetupLaunch4j_3.0.3.exe
並在這里閱讀更多:
http://frank-fbergmann.blogspot.de/2012/11/launch4j-for-32bit.html
http://fbergmann.github.io/launch4j/
我不知道Launch4J,但你可以通過閱讀System.getProperty("os.arch");
獲得有關32/64的信息System.getProperty("os.arch");
。 如果遇到64位系統,可以使用一條好消息退出安裝程序,告訴用戶安裝32位JVM。
您可以使用包裝器包裝startUp-Code以向用戶顯示消息框。
public static void main(String[] args]){
String architecture = System.getProperty("os.arch");
// Did not test the return value of this property,,but should work
if("64".equals(architecture)){
// Show a dialog, or print a logmessage
System.exit(-1);
}
// Start my APP
com.something.startup.main(args);
}
如果您不介意在您的應用程序中包含JDK的副本,請嘗試將這些參數(在MyApp.ini中)傳遞給launch4j:
-D32 -Djava.home=d:\MyApp\JDK32 -Djava.ext.dirs=d:\MyApp\JDK32\jre\lib\ext
還有其他一些可以使用的東西:
如果不打包JRE,可以將Launch4j選項設置為使用“jreOnly”,然后使用名為“%ProgramFiles%”的DOS環境變量,可以找到預期的32位或64位JRE位置,具體取決於您使用的是SysWOW64 32位cmd.exe shell還是常規的64位shell。 然后,您可以將這些選項傳遞給JVM:
-D32 -Djava.home=%ProgramFiles%\Java\JREDIR -Djava.ext.dirs=%ProgramFiles%\Java\JREDIR\lib\ext
要么
-D32 -Djava.home=%ProgramFiles(x86)%\Java\JREDIR -Djava.ext.dirs=%ProgramFiles(x86)%\Java\JREDIR\lib\ext
對於像Areca這樣受到攻擊的Launch4j應用程序的任何用戶,並且需要快速解決,請查看啟動應用程序的目錄,您將找到一個完整的java命令行來在名為launch4j的文件中運行程序。記錄 。 只需使用您喜歡的java vm創建一個bat文件或腳本,然后使用日志中的完整命令行運行它。
配置時必須添加JVM參數。
它在下面的帖子中顯示了如何添加它:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.