如何把一個java程序打包成exe文件,運行在沒有java虛

如何把一個java程序打包成exe文件,運行在沒有java

  核心提示:首先,將編譯好的程序打包成jar文件,然后做出exe,這樣代碼就不可見了;但是exe文件在沒有安裝jre的電腦上不能運行,如果要求客戶再去安裝jre 設置環境變量就不雅了。我們需要將jre打包。這幾步操作網上介紹的插件和方法很多,但有的好用有的不好用,而且有的還需要注冊。經過嘗試比較,在千里冰...

?首先,將編譯好的程序打包成jar文件,然后做出exe,這樣代碼就不可見了;但是exe文件在沒有安裝jre的電腦上不能運行,如果要求客戶再去安裝jre 設置環境變量就不雅了。我們需要將jre打包。

?

這幾步操作網上介紹的插件和方法很多,但有的好用有的不好用,而且有的還需要注冊。經過嘗試比較,在千里冰封的博客上得到了很大的幫助。整理一下。使用這幾個工具,您也可以順利的發布您的java程序!

?

?

1 打包成雙擊可執行的jar文件。

?

推薦插件:fatJarEclipse使用)

?

下載地址 http://sourceforge.net/project/showfiles.php?group_id=115990&package_id=125924

?

我用的是Eclipse,它自帶的打包方法在打包一些圖片等資源時不是很爽。可以使用這個插件。

?

安裝方法解壓后將plugins文件夾下的net.sf.fjep.fatjar_0.0.24文件夾拷到eclipse安裝目錄的plugins 下。

?

用此工具可以方便的將eclipse中的工程打包成jar文件。如果是要打成可執行的jar請注意選取主類。

?

你的項目=Export..=>向導里有fat jar =>...

?

?

2 jar文件轉換成exe文件。

?

推薦工具:exe4j

?

exe4jjava打包成exe

?

http://www.blogjava.net/hadeslee/archive/2007/10/12/152228.html

?

在我們寫程序的時候,有時會有一種需求,那就是希望我們的程序是一個可執行文件,而不是一個 jar文件,其實大部份時候,可執行的jar文件都可以滿足要求,但是如果我們的程序是需要保護的,那么打包成jar文件就不太安全了,因為jar文件就是一個解壓縮文件,一解壓就什么都能看到了,當然也可以選擇混淆,但是混淆了以后排錯就沒那么容易了,因為混淆的時候,把一些類的信息都混淆了。如何既保證代碼的安全又容易排錯呢?那么打包成exe就是一種很好的辦法了,其實我今天介紹這個方法并不是希望大家去打包成exe文件,因為exe文件畢竟不是跨平臺的,用了exe的格式就失去了java的初衷了。

?

exe4j可以打包成各種格式的exe,可以把jar打包進exe,也可以引用一個外部的 jar文件,還可以打包成windows服務的程序,并且可以設置最低jre的版本,還可以設定啟動畫面,雖然java6.0已經實現了這一點,但是還是沒有exe4j生成的啟動畫面快。

?

?

3 exe文件并jre打包成安裝文件,可以在沒有安裝java虛擬機的電腦上運行

?

推薦工具:install4j

?

Install4j介紹

?

http://www.blogjava.net/hadeslee/archive/2007/10/15/152855.html

?

install4j是一個功能強大的,多平臺Java安裝文件生成工具,用于生成Java應用程序本地化的安裝及應用程序發布。 install4j 的優異性在于它易于使用,緊密的集成到目標平臺,以及靈活的JRE 管理與部署選項。

?

創建發布樹

?

install4j的圖形用戶界面允許你:

?

??? * 完全自定義發布樹

?

????? 在發布樹的每一個目錄中,你能設置整個目錄內容或是磁盤上任何目錄的單個文件。定義的視圖與結果視圖讓你能完全控制安裝程序將發布的文件。

?

??? * 處理特定平臺的差異

?

????? install4j提供方便的包含/排除機制,使其適應平臺方式來進行發布。

?

??? * 針對Unix, Linux Mac OS X所定義的文件權限

?

????? 對發布樹的每一個元素,當其安裝在類似于Unix這樣的平臺上時,你能自定義用戶訪問的權限。

?

??? * 定義優良的卸載策略

?

????? 對發布樹的每一個元素,你能決定在卸載時是否刪除它。

?

??? * 定義覆蓋策略

?

????? 對發布樹的每一個元素,你能配置不同的覆蓋策略,當安裝過程中需要覆蓋文件時,這些覆蓋策略會指示nstall4j進行相應的操作。

?

??? * 定義安裝的組件

?

????? 你能定義文件及目錄的分組,形成分離的安裝組件,這樣你就可提供給用戶來選擇只安裝一定的組件。

?

其實一個好的應用如果不太好布署,那么別人也只能對它望而興嘆了,現在有了 install4j,很多布署的問題幾乎全部解決了.我們可以用exe4j打包java應用,然后用install4j發布java應用,以前java程序布署難的問題,現在幾乎都解決了.install4j不但用于打包很合適,并且它還提供了一組很強大很實用的與平臺相關的api.這些對于擴展我們的程序也是有很大的幫助的.

?

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/388406.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/388406.shtml
英文地址,請注明出處:http://en.pswp.cn/news/388406.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Java后端WebSocket的Tomcat實現

原文:https://www.cnblogs.com/xdp-gacl/p/5193279.html 一.WebSocket簡單介紹 隨著互聯網的發展,傳統的HTTP協議已經很難滿足Web應用日益復雜的需求了。近年來,隨著HTML5的誕生,WebSocket協議被提出,它實現了瀏覽器與…

加速業務交付,從 GKE 上使用 Kubernetes 和 Istio 開始

原文來源于:谷歌云技術博客 許多企業機構正在把全部或部分 IT 業務遷移到云端,幫助企業更好的運營。不過這樣的大規模遷移,在企業的實際操作中也有一定難度。不少企業保存在本地服務器的重要資源,并不支持直接遷移到云端。 另外&a…

knn 鄰居數量k的選取_選擇K個最近的鄰居

knn 鄰居數量k的選取Classification is more-or-less just a matter of figuring out to what available group something belongs.分類或多或少只是弄清楚某個事物所屬的可用組的問題。 Is Old Town Road a rap song or a country song?Old Town Road是說唱歌曲還是鄉村歌曲…

計算機網絡中 子網掩碼的算法,[網絡天地]子網掩碼快速算法(轉載)

看到一篇很好的資料,大家分享有很多人肯定對設定子網掩碼這個不熟悉,很頭疼,那么我現在就告訴大家一個很容易算子網掩碼的方法,幫助一下喜歡偷懶的人:)大家都應該知道2的0次方到10次方是多少把?也給大家說一…

EXTJS+JSP上傳文件帶進度條

需求來源是這樣的:上傳一個很大的excel文件到server, server會解析這個excel, 然后一條一條的插入到數據庫,整個過程要耗費很長時間,因此當用戶點擊上傳之后,需要顯示一個進度條,并且能夠根據后…

android Json詳解

Json:一種輕量級的數據交換格式,具有良好的可讀和便于快速編寫的特性。業內主流技術為其提供了完整的解決方案(有點類似于正則表達式 ,獲得了當今大部分語言的支持),從而可以在不同平臺間進行數據交換。JSON采用兼容性…

react實踐

React 最佳實踐一、 React 與 AJAXReact 只負責處理 View 這一層,它本身不涉及網絡請求 /AJAX: 第一,用什么技術從服務端獲取數據; 第二,獲取到的數據應該放在 react 組件的什么位置。 事實上是有很多的:fetch()、fetc…

什么樣的代碼是好代碼_什么是好代碼?

什么樣的代碼是好代碼編碼最佳實踐 (Coding Best-Practices) In the following section, I will introduce the topic at hand, giving you a sense of what this post will cover, and how each argument therein will be approached. Hopefully, this will help you decide w…

nginx比較apache

話說nginx在大壓力的環境中比apache的表現要好,于是下載了一個來折騰一下。 下載并編譯安裝,我的編譯過程有點特別: 1。去除調試信息,修改$nginx_setup_path/auto/cc/gcc這個文件,將 CFLAGS"$CFLAGS -g" …

計算機主板各模塊復位,電腦主板復位電路工作原理分析

電源、時鐘、復位是主板能正常工作的三大要素。主板在電源、時鐘都正常后,復位系統發出復位信號,主板各個部件在收到復位信號后,同步進入初始化狀態。如圖7-11所示為復位電路的工作原理圖,各個十板實現復位的電路不盡相同&#xf…

Docker制作dotnet core控制臺程序鏡像

(1)首先我們到某個目錄下,然后在此目錄下打開visual studio code. 2.編輯docker file文件如下: 3.使用dotnet new console創建控制臺程序; 4.使用docker build -t daniel/console:dev .來進行打包; 5.啟動并運行鏡像; 6.我們可以看到打包完的鏡像將近2G,因為我們使用…

【362】python 正則表達式

參考:正則表達式 - 廖雪峰 參考:Python3 正則表達式 - 菜鳥教程 參考:正則表達式 - 教程 re.match 嘗試從字符串的起始位置匹配一個模式,如果不是起始位置匹配成功的話,match()就返回none。 re.search 掃描整個字符串并…

在Python中使用Twitter Rest API批量搜索和下載推文

數據挖掘 , 編程 (Data Mining, Programming) Getting Twitter data獲取Twitter數據 Let’s use the Tweepy package in python instead of handling the Twitter API directly. The two things we will do with the package are, authorize ourselves to use the …

第一套數字電子計算機,計算機試題第一套

《計算機試題第一套》由會員分享,可在線閱讀,更多相關《計算機試題第一套(5頁珍藏版)》請在人人文庫網上搜索。1、計算機試題第一套1、計算機之所以能自動運算,就是由于采用了工作原理。A、布爾邏輯。B 儲存程序。C、數字電路。D,集成電路答案選B2、“長…

Windows7 + Nginx + Memcached + Tomcat 集群 session 共享

一,環境說明 操作系統是Windows7家庭版(有點不專業哦,呵呵!),JDK是1.6的版本, Tomcat是apache-tomcat-6.0.35-windows-x86,下載鏈接:http://tomcat.apache.org/ Nginx…

git 版本控制(一)

新建代碼庫repository 1、在當前目錄新建一個git代碼庫 git init git init projectname 2、下載一個項目,如果已經有了遠端的代碼,則可以使用clone下載 git clone url 增加/刪除/改名文件 1、添加指定文件到暫存區 git add filename 2、添加指定目錄到暫…

rollup學習小記

周末在家重構網關的Npm包,用到了rollup,記下筆記 rollup適合庫library的開發,而webpack適合應用程序的開發。 rollup也支持tree-shaking,自帶的功能。 package.json 也具有 module 字段,像 Rollup 和 webpack 2 這樣的…

大數據 vr csdn_VR中的數據可視化如何革命化科學

大數據 vr csdnAstronomy has become a big data discipline, and the ever growing databases in modern astronomy pose many new challenges for analysts. Scientists are more frequently turning to artificial intelligence and machine learning algorithms to analyze…

object-c 日志

printf和NSlog區別 NSLog會自動加上換行符,不需要自己添加換行符,NSLog會加上時間和進程信息,而printf僅將輸入的內容輸出不會添加任何額外的東西。兩者的輸入類型也是有區別的NSLog期待NSString*,而printf期待const char *。最本…

計算機真正管理的文件名是什么,計算機題,請大家多多幫忙,謝謝

4、在資源管理器中,若想顯示文件名、文件大小和文件類型,應采用什么顯示方式。( )A、小圖標顯示 B、列表顯示 C、詳細資料顯示 D、縮略圖顯示5、在EXCEL中,可以依據不同要求來提取和匯總數據,4、在資源管理器中,若想顯…