日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

将java 打包成exe 可执行文件

發(fā)布時(shí)間:2024/4/14 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 将java 打包成exe 可执行文件 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

  在java應(yīng)用開(kāi)發(fā)中,編譯完java?文件生成類(lèi)文件,可以在命令行用java命令運(yùn)行,但是這樣很麻煩,因?yàn)橐话愕膉ava 程序都不是獨(dú)立的應(yīng)用,都會(huì)引用一些其他的jar?包,所以為了每次使用的方便,是好打包成exe或bat 的方式。

  以下是一種實(shí)現(xiàn)方式,不需要借助于任何的工具。

  一、在eclipse中把需要打包的類(lèi)編譯成class文件

  二、在類(lèi)的根文件夾下新建一個(gè)文件MANIFEST.MF、新建一個(gè)文件夾lib,把你所引用的其他jar包拷由到lib中,??

??????????? 其目錄結(jié)構(gòu)如下

?????????????????? +bin

??????????????????????? -----MANIFEST.MF

????????????????????????-----lib

?????????????????????????????+引用的包一

?????????????????????????????+引用的包二?

??????????????????????? -----com(編譯后的類(lèi)目錄)

???????????????????????????? --smartdot

???????????????????????????????? --cip

????????????????????????????????? --類(lèi)一

????????????????????????????????? --類(lèi)二

?

?MANIFEST.MF介紹:包含了JAR文件的內(nèi)容描述,并在運(yùn)行時(shí)向JVM提供應(yīng)用程序的信息,大多數(shù)JAR文件含有一個(gè)默認(rèn)生成的manifest 文件,在這里我們主要利用這個(gè)文件指定運(yùn)行時(shí)的main class,以及main class 運(yùn)行時(shí)需要引用的jar包.

其內(nèi)容為:

Main-Class: com.smartdot.expinitdata.ExportCIPData Class-Path: ./lib/ChineseTransform.jar ./lib/classes12.jar ./lib/commons-lang-2.1.jar ./lib/commons-logging.jar ./lib/j2ee.jar ./lib/ojdbc14.jar Manifest-Version: 1.0

?MANIFEST.MF文件經(jīng)常會(huì)出錯(cuò),例如把Class-Path? 放最到后一行,生成的jar文件中的MANIFEST.MF中就沒(méi)有Class-Path,網(wǎng)上很多人問(wèn)這個(gè)問(wèn)題,但是都沒(méi)有找到出問(wèn)題的原因,解決方式是把Class-Path寫(xiě)到Manifest-Version上面就可以了,有時(shí)間去java 英文文檔上找原因吧。

??? 上面的MANIFEST.MF指定的class-path是根據(jù)第二步的文件結(jié)構(gòu)中l(wèi)ib的存放位置指定的,當(dāng)然也可以修改。

?

三、在命令行中執(zhí)行打jar包

???

jar cvfm init.jar MANIFEST.MF com

??當(dāng)然,需要把當(dāng)前目錄指到第二步的bin?下,即class文件的根目錄下

???

????剛開(kāi)始我用的是jar cvfm init.jar MANIFEST.MF com/. 這個(gè)命令,生的JAR中的目錄有問(wèn)題,com的下級(jí)目錄名前總帶一個(gè)/.?, 所以總說(shuō)找不到main class,刪掉“/.”就好了。

?

四、編寫(xiě)bat 文件

??? bat 文件很簡(jiǎn)單,只需要3句,將當(dāng)前的路徑指定到編譯后的jar 包所以在目錄,運(yùn)行java

?????

cd e:\patentOfficeData\bin java -jar init.jar pause

?

在我的理解中,生成的jar 中應(yīng)該可以雙擊運(yùn)行,而不用再編寫(xiě)bat文件,但是雙擊jar包后,可以啟動(dòng)一個(gè)java 進(jìn)程,但是看不到運(yùn)行的界面,和輸出的語(yǔ)句,是我的理解有誤?

?

五、移植

???? 如果想在其他機(jī)器上運(yùn)行這個(gè)main class , 則需要建立一個(gè)文件夾,里面需要3個(gè)文件

????-----文件夾

??????? +打完的jar文件

??????? +lib目錄(存放引用的jar)

??????? +bat文件

??? 只要拷貝這個(gè)大的文件夾就可以了。

??

??? 有一點(diǎn)要注意,移植時(shí),新機(jī)器的目錄e:\patentOfficeData\bin目錄必須存在,否則會(huì)報(bào)錯(cuò)。所以建議一開(kāi)始打包就找一個(gè)比較簡(jiǎn)單的路徑作為類(lèi)的根路徑。

?

?

?

總結(jié)

以上是生活随笔為你收集整理的将java 打包成exe 可执行文件的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。