jvm編譯exe
『壹』 java做好的程序如何生成exe
下面是具體步驟:
需要的工具,用了exe4j這個軟體
exe4j是一個幫助你集成Java應用程序到Windows操作環境的java可執行文件生成工具
無論這些應用是用於伺服器,還是圖形用戶界面(GUI)或命令行的應用程序
exe4j幫助你以一種安全的方式啟動你的 java應用程序來顯示本地啟動畫面
檢測及發布合適的JRE和JDK以及進行啟動時所發生的錯誤處理等
1、先把自己的程序發布成jar文件
這是eclipse自帶的功能,右鍵工程包-->Export
然後選擇Java-->JAR file,點擊next
『貳』 java文件編譯後生成的class文件怎麼轉EXE文件!!!高分啊
有兩種比較易用的方法: 關於兩種將Java程序轉化為.exe程序工具的使用及比較 一 JSmooth 1.出品 Jsmooth,Sourceforge.net 2. 類型 free 3. 下載 http://jsmooth.sourceforge.net/download.php 4. 步驟 a)利用Eclipse將所需要的主類打成可獨立運行的jar包,注意添加manifest屬性和MainClass。 b)新建一個Jsmooth工程 c) 在sketlon中選擇「Console「 或者 「Windowed「 d) 在Executable中的配置: i. Executable Binary:填寫目的輸出源的名稱。如test.exe. ii. Executable Icon :選擇一個好看點的圖標 iii. Current Driectory :.(表示當前工程目錄,當然也可行換成別的,As you wish.) e) 在Application中的配置: i. Classpath:選中我們所生成的jar包以及運行該jar文件所需要的類庫 ii. Main-Class:選中我們所需要運行的主類。 iii. 可選項Use an embedded jar:運行該exe時可能需要到的類庫(這里只能有一個類庫)。 f) 在JVM Selection中的配置: i. Minimum JVM Version:寫一個需要運行該程序所需的最低的就JVM的版本,比如1.4 g) Compile:OK,編譯成功後,在你的輸出目錄上就會有一個嶄新的exe程序了。Just enjoy it. 二 exe4J 1. 出品 ej-technologies 2.類型 Shared software,needs license 3.下載 http://www.ej-technologies.com/download/exe4j/files.php 4. 步驟 a) 利用Eclipse將所需要的主類打成可獨立運行的jar包,注意添加manifest屬性和MainClass。 b) 新建一個exe4j工程 c) 選擇「JAR in exe「 mode d) 在Configure application中的配置: i. Short name:隨便寫. ii. Ourput Driectory :選擇輸出路徑。 e) 在Configure Executable中的配置: i. Executable type: 有三個選項,圖形,控制台.或服務。從簡單點開始吧,這里我們選console ii. Executable name:填寫目的輸出源的名稱。如test.exe iii. Icon file:exe圖標文件,但必須是.ico文件 f) 在Configure Java invocation中的配置: i. Classpath:選中我們所生成的jar包以及運行該jar文件所需要的類庫 ii. Main-Class:選中我們所需要運行的主類。 iii.Arguments(可選項):輸入參數。我們這里暫不需要。 g)在Configure JRE中的配置: i. Minimum Version:寫一個需要運行該程序所需的最低的就JVM的版本,比如1.4 h) 一直next,對於所遇到的步驟選項都默認,直到finish:OK。編譯成功後,在你的輸出目錄上就會有一個嶄新的exe程序了。Just enjoy it. 三 總結和比較 由Java生成exe的工具還有很多,上面兩種是我個人覺得用起來覺得比較方便的。兩者的原理基本相同,但具體用起來還是有一點點不太一樣的: 1.相同點 a) 最大的相同點當然是他們原理是互通的。都是通過將可運行的java程序打成可執行的jar包。再作轉換。 b) 所生成的exe可執行程序,需要在裝有比minimum version高的JVM環境下運行。 2. 不同點 a) 生成exe的時候,如果想要exe只需要pure JVM的環境(不需要第三方的類庫)就可以運行的話。在JSmooth需要將所有的用到的第三方類庫壓縮成一個jar包(因為它有個embeded jar的選項),這就比較麻煩,因為當需要的jar多於一個時候,就需要將這些jar包先用jar –xvf 解壓縮,在用jar –cvf重新製作新的jar文件,再放到embeded jar選項中去;而exe4J則會把classppath中所用到的jar包也會編譯到exe中去。 b) JSmooth是免費的;而exe4J是共享軟體,需要注冊,否則在執行exe的時候會彈出很惹人煩的提示框。 c)ico文件的選擇:exe4J要求嚴格的ico文件,而JSmooth則可以兼容jpg等其他各式的圖片。
『叄』 如何java程序封裝成.exe文件
如何把JAVA程序封裝成EXE文件
可以把普通的Java程序做成真正的exe,也就是單一個exe就可以在沒有安裝JVM的機器上運行。這樣的工具常見的有JET和gcj.前者是收費的,而且做出來的exe還是需要一堆dll。推薦使用gcj.他有windows和Linux版,直接下載zip包,不需要安裝,裡面有不少例子,一些build的批處理文件。從原理來說gcj自己實現了JVM規范,也就是你編寫一個HelloWorld.java,其中的main方法為System.out.println("foo"); 當使用gcj把它做成exe(大約2M),運行這個exe時,會啟動裡面的一個小型jvm,在這上面跑HelloWorld。 其實,把Java做成純exe實在是吃力不討好,有很多限制,文件又大。
『肆』 怎麼把JAVA編寫的游戲生成.exe文件啊
首先你應該知道,Java的程序必須運行在有JVM(Java虛擬機)的機器上。沒有JVM的EXE程序文件也不能執行。
Java生成EXE文件其實很簡單:
1)將編好的Java程序(必須含有main方法,這是程序的入口)導出成jar包,這個jar包雙擊就可以運行了。
2)用軟體將這個jar包加個外殼,擴展名就是.exe的文件了。這樣的軟體有很多,比如:exe4j、JSmooth等。這兩個軟體的操作都很簡單。
如果有什麼問題可以給我發信息。
補充:用Eclipse導出jar文件過程:
右鍵"項目"--> Export --> Java --> JAR file --> 選擇項目和輸出路徑(文件名) --> Finish
『伍』 裝好了JDK,老師說裡面的javac.exe是用來編譯源文件的,java.exe用來生成可執行文件
jdk中的jre就是jvm 而java.exe就是把編譯好的文件交給jvm執行
『陸』 Java程序也可以編譯成可執行陳旭,直接運行嗎
java並不可以直接編譯成.exe的可執行程序, java編譯結果是.class位元組碼文件,位元組碼文件的執行必須依賴於jvm
就算使用 jar2exe之類的工具將java程序打包成了.exe可執行程序, 如果在一台沒有裝有jvm的電腦上,依舊是無法運行的
『柒』 java中eclipse,jdk,jvm,jre,編譯器的區別
JVM就是常說的java虛擬機,它是整個java實現跨平台的 最核心的部分,所有的java程序會首先被編譯為.class的類文件,這種類文件可 以在虛擬機上執行,也就是說class並不直接與機器的操作系統相對應,而是經過虛擬機間接與操作系統交互,由虛擬機將程序解 釋給本地系統執行。
JVM 是 Java 平台的基礎,和實際的機器一樣,它也有自己的指令集,並且在運行 時操作不同的內存區域。 JVM 通過抽象操作系統和 CPU 結構,提供了一種與平台無關的代碼執行方法,即與特殊的實現方 法、主機硬體、主機操作系統無關。但是在一些小的方面, JVM 的實現也是互不相同的,比如垃圾回收 演算法,線程調度演算法(可能不同 OS 有不同的實現)。JVM 的主要工作是解釋自己的指令集(即位元組碼)到 CPU 的指令集或 OS 的系統調用,保護用戶免被惡意程序騷擾。 JVM 對上層的 Java 源文件是不關心的,它關注的只是由源文件生成的類文件( class file )。類文件的 組成包括 JVM 指令集,符號表以及一些補助信息。
JRE是指java運行環境。光有JVM還不能成class的 執行,因為在解釋class的時候JVM需要調用解釋所需要的類庫lib。 在JDK的安裝目 錄里你可以找到jre目錄,裡面有兩個文件夾bin和lib,在 這里可以認為bin里的就是jvm,lib中則是jvm工 作所需要的類庫,而jvm和 lib和起來就稱為jre。所以,在你寫完java程序編譯成.class之後,你可以把這個.class文件 和jre一起打包發給朋友,這樣你的朋友就 可以運行你寫程序了。(jre里有運行.class的java.exe)
JRE 是 Sun 公司發布的一個更大的系統,它裡面就有一個 JVM 。 JRE 就與具體的 CPU 結構和操作系統有關,我們從 Sun 下載 JRE 的時候就看到了不同的各種版本。同 JVM 一起組成 JRE 的還有一些 API (如 awt , swing 等)。 JRE 是運行 Java 程序必不可少的。
JRE ( Java Runtime Environment ),是運行 Java 程序必不可少的(除非用其他一些編譯環境編譯成.exe可執行文件……),JRE的 地位就象一台PC機一樣,我們寫好的Win32應用程序需要操作系統幫 我們運行,同樣的,我們編寫的Java程序也必須要JRE才能運行。
JRE裡面有一個 JVM , JRE 與具體的 CPU 結構和操作系統有關,我們從 Sun 下載 JRE 的時候就看到了不同的各種版本,,同 JVM 一起組成 JRE 的還有 一些 API (如 awt , swing 等), JRE 是 運行 Java 程序必不可少的.
JDK是java開發工具包,基本上每個學java的人都會先在機器 上裝一個JDK,那他都包含哪幾部分呢?讓我們看一下JDK的安裝目錄。在目錄下面有 六個文件夾、一個src類庫源碼壓縮包、和其他幾個聲明文件。其中,真正在運行java時起作用的 是以下四個文件夾:bin、include、lib、 jre。現在可以看出這樣一個關系,JDK包含JRE,而JRE包 含JVM。
bin:最主要的是編譯器(javac.exe)
include:java和JVM交互用的頭文件
lib:類庫
jre:java運行環境
(注意:這里的bin、lib文件夾和jre里的bin、lib是 不同的)總的來說JDK是用於java程序的開發,而jre則 是只能運行class而沒有編譯的功能,eclipse、idea等 其他IDE有自己的編譯器而不是用JDK bin目錄中自帶的,所以在安裝時你會發現他們只要求選中jre路徑就ok了。
三者聯系:
Java 喊出的帶有標志性的口號「 Write Once , Run Anywhere (一次編寫,到處運行)」,正是建立在 JRE 的基礎之上。何以實現?就是在 Java 應用程序和操作系統之間增加了一虛擬層—— JRE 。
程序源代碼不是直 接編譯、鏈接成機器代碼,而是先轉化到位元組碼( bytecode ) 這種特殊的中間形式,位元組碼再轉換成機器碼或系統調用。前者是傳統的編譯方法,生成的機器代碼就不可避免地跟特殊的操作系統和特殊的機器結構相關。而 Java 程序的位元組碼文件可以放到任意裝有 JRE 的計算機運行,再由不同 JRE 的將它們轉化成相應的機器代碼,這就實現了 Java 程序的可移植性。這樣程序員也不用去 關心程序運行的具體環境,而可以專心編寫軟體。這種分層抽象、隱藏細節的思想在計算機科學中處處可見,比如機器組織結構的設計、網路協議的實現等。 Pascal 語言的發明者 Niklaus Wirth ,就富有預見性地指出應該有這樣一種可移植的語言,其生成的中間代碼可以在一台假想的機器( a hypothetical machine )上運行。
而 Java 虛擬機( Java virtual machine 或 JVM )就是這樣的一台機器,它模擬實際處理器的結構,解釋位元組碼。 怎麼一會說是 JRE ,一會兒又成了 JVM ,兩者是否同物不同名? 回答是否定的。
JRE的地位就象一台PC機一樣,我們寫好的Win32應用程序需要操作系統幫 我們運行,同樣的,我們編寫的Java程序也必須要JRE才能運行。
要運行Applet,在客戶端必須安裝有 JRE,即「運行時」,容易一點理解,就象所謂的「插件」,要開發JAVA應用程序Web應用,就必須在伺服器端安裝相應的 JVM+JDK 了(開發應用 Java web應用 時,客戶端不需要安裝任何的JVM)如果使用JAVA開發應用,就需要安裝 JRE+JDK,就是 J2SE. 。如果在客戶端運行Applet,客戶端瀏覽器必須嵌有JAVA JVM,如果沒有,就需要安裝,即: 在客戶端創建JRE(運行時,包含JVM),而客戶端是不需要做開發的,所以,JDK就沒有必要安裝 了。不同版本的Applet在不同的JVM下可能無法正常運行,而Microsoft JVM只是Sun JVM的「低版本」,微軟在windows xp/2003中乾脆將JVM去掉了.
『捌』 javac.exe和java.exe運行了java程序中的哪兩個程序
首先要了解javac.exe是編譯功能
java.exe是執行class,如果沒有編譯的話是不能執行的,同理,javac.exe編譯完以後如果沒有java.exe執行的話也是沒有運行的
前提:得配置環境變數
我的電腦點右鍵,選擇「屬性」,選擇「高級」標簽,進入環境變數設置,分別設置如下三個環境變數:
設置JAVA_HOME:
一是為了方便引用,比如,JDK安裝在C:\jdk1.6.0目錄里,則設置JAVA_HOME為該目錄路徑, 那麼以後要使用這個路徑的時候, 只需輸入%JAVA_HOME%即可, 避免每次引用都輸入很長的路徑串;
二則是歸一原則, 當JDK路徑改變的時候, 僅需更改JAVA_HOME的變數值即可, 否則,就要更改任何用絕對路徑引用JDK目錄的文檔, 要是萬一沒有改全, 某個程序找不到JDK, 後果是可想而知的----系統崩潰!
三則是第三方軟體會引用約定好的JAVA_HOME變數, 不然, 你不能正常使用該軟體.
在系統環境變數那一欄中點->新建JAVA_HOME (JAVA_HOME指向的是JDK的安裝路徑)
變數名: JAVA_HOME
變數值: C:\jdk1.6.0
(1)設置好path變數,使得我們能夠在系統中的任何地方運行java應用程序,比如javac、java、javah等等,這就要找到我們安裝JDK的目錄,
假設我們的JDK安裝在C:\jdk1.6.0目錄下,那麼在C: \jdk1.6.0\bin目錄下就是我們常用的java應用程序,我們就需要把C:\jdk1.6.0\bin這個目錄加到path環境變數裡面。
在系統變數里找到path變數,選擇->編輯;(裡面已經有很多的變數值,是在變數值的最前面加上C:\jdk1.6.0\bin; 如果沒有 就新建一個 但是 一般都會有的)
變數名: path
變數值: C:\jdk1.6.0\bin;
或 %JAVA_HOME%\bin;
(2)classpath環境變數,是當我們在開發java程序時需要引用別人寫好的類時,要讓java解釋器知道到哪裡去找這個類。通常,sun為我們提供了一些額外的豐富的類包,一個是dt.jar,一個是tools.jar,這兩個jar包都位於C:\jdk1.6.0\lib目錄下,所以通常我們都會把這兩個jar包加到我們的classpath環境變數中set classpath=.;C:\jdk1.6.0\lib\tools.jar;C:\jdk1.6.0\lib\dt.jar。
在系統環境變數那一欄中點->新建classpath
變數名: classpath
變數值: .;C:\jdk1.6.0\lib\tools.jar;C:\jdk1.6.0\lib\dt.jar;
或 .;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;
(注意,CLASSPATH 中最前面是有個 「.」的,表示當前目錄,這樣當我們運行java AClass的時候,系統就會先在當前目錄尋找AClass文件了。);