dos編譯jarexe
⑴ 請問用jar轉化成的exe文件運行時需要java環境嗎
用dos指令就需要,編譯器就不需要了
⑵ java代碼如何生成可運行的程序 例如c一樣,編譯後有exe java是不是一定要jdk
JDK是開發環境
運行java必須得有JRE環境
可以把java打成jar包 然後將jar包可以打成exe文件 用JSmooth工具可以把jar打成exe
⑶ 在DOS中編譯JAVA文件時提示JAVAC找不到Hello.java
2.1.3 了解JDK
接著來了解一下安裝的東西有哪些。這里假設JDK與公用JRE各安裝至C:\Program Files\Java\jdk1.5.0_06\及C:\Program Files\Java\jre1.5.0_06\。
公用JRE主要是為開發好的Java程序提供執行的平台。前面曾經說過,JDK本身也有自己的JRE,這個JRE位於JDK安裝目錄的jre目錄下。以前面的安裝為例,就是在C:\Program Files\Java\jdk1.5.0_06\jre中,JDK本身所附的JRE主要是開發Java程序時做測試之用。與公用JRE的主要差別在於JDK本身所附的JRE比公用JRE多了個server的VM(Virtual Machine)執行選項,如圖2-5和圖2-6所示。通過查看C:\Program Files\Java\jdk1.5.0_06\jre\bin與C:\Program Files\Java\jre1.5.0_06\bin就可以了解。
圖2-5 JDK的JRE有server選項 圖2-6 公用JRE沒有server選項
server與client選項的差別在於所使用的VM不同,執行Java程序時默認會使用client VM。若使用server VM,會花比較長的啟動時間及消耗較多的內存,為的是啟動Java程序後可以獲得較好的執行效能。初學者現階段不用在乎啟動server或client VM的差別,只要先知道有這兩種VM即可。
如圖2-7所示,繼續來看看JDK的安裝目錄下有哪些東西。
圖2-7 JDK安裝目錄的內容
bin目錄
提供的是JDK的工具程序,包括javac、java、javadoc、appletviewer等程序。
demo目錄
一些使用Java編寫好的范常式序。
jre目錄
JDK自己附帶的JRE。
lib目錄
工具程序實際上會使用的Java工具類(例如,javac工具程序實際上會去使用tools.jar中的com/sun/tools/javac/Main類)。
src.zip
Java提供的API類的源代碼壓縮文件。如果將來需要查看API的某些功能是如何實現的,可以查看這個文件中的源代碼內容。
在大致了解JDK與JRE安裝目錄下的內容之後,這里作個總結,您到底要記得哪些東西?答案是JDK安裝目錄下的bin目錄。因為當您編寫完Java程序之後,無論是編譯或執行程序,都會使用到bin目錄下所提供的工具程序。
2.2 設置Path與Classpath
對於習慣圖形化介面操作的初學者而言,在命令符模式下執行程序是一件陌生的事,也因此不了解Path路徑設置的方法與作用,而Java執行的平台也有自己的一套路徑規則來尋找編寫好的Java類,也就是所謂的Classpath設置。本節將介紹如何進行這些相關的設置。
2.2.1 設置Path
在安裝好JDK程序之後,在JDK安裝目錄(假設是C:\Program Files\Java\jdk1.5.0_06)下的bin目錄中,會提供一些開發Java程序時必備的工具程序。對於Java的初學者,建議從命令符模式(在Windows 2000/XP下稱之為命令提示符)下來操作這些工具程序。您可以在Windows 2000/XP的「開始」菜單中選擇「運行」,輸入「cmd」命令來打開命令符模式。
雖然您知道JDK的工具程序是位於bin目錄下,但您的操作系統並不知道如何找到這些工具程序。所以當您輸入javac嘗試執行編譯程序時,命令符模式下會告訴您找不到javac工具程序,如圖2-8所示。
圖2-8 出現這個信息表示找不到指定的工具程序
您必須告訴操作系統,應該到哪些目錄下嘗試找到您所想使用的工具程序。有幾個方法可以進行這項設置,最簡便的方法就是設置系統變數中的Path環境變數。在Windows 2000/XP下可以選擇桌面上的「我的電腦」並單擊滑鼠右鍵,選擇「屬性」後切換至「高級」頁面,並單擊下方的「環境變數」按鈕,在「環境變數」對話框中編輯Path變數,如圖2-9所示。
圖2-9 選擇Path變數並單擊「編輯」按鈕以進行路徑設置
如圖2-10所示,在Path變數的「編輯系統變數」對話框中,在「變數值」文本框中先輸入一個「;」,接著輸入JDK bin目錄的路徑(這里假設是C:\Program Files\Java\jdk1.5.0_06\bin),然後單擊「確定」按鈕即可完成設置。
圖2-10 在Path變數中加入JDK的bin目錄路徑
設置Path變數之後,要重新打開一個命令符模式才能重新讀入Path變數內容,接著如果執行javac程序,應該可以看到圖2-11所示的畫面。
圖2-11 若設置Path變數成功,就可以找到指定的工具程序
也可以在命令符模式下執行以下的命令,直接設置目前的環境變數,包括Path變數(這個設置在下次重新打開命令符模式時就不再有效):
set Path=%Path%;C:\Program Files\Java\jdk1.5.0_06\bin
由於以上介紹的Path設置都是尋找JDK安裝目錄下的bin目錄,所以操作系統會搜索JDK安裝目錄下的工具程序。這樣當執行java程序時,默認會使用JDK所附的JRE(即C:\Program Files\Java\jdk1.5.0_06\jre),而不是公用的JRE(即C:\Program Files\Java\jre1.5.0_06\)。
簡單地說,操作系統會嘗試在指定的Path變數中尋找指定的工具程序。當輸入javac命令時,由於Path變數中有設置JDK的bin目錄的路徑,操作系統就可以根據這個信息來找到javac工具程序。
2.2.2 設置Classpath
Java執行環境本身就是一個平台,執行於這個平台上的程序是已編譯完成的Java程序(後面會介紹到Java程序編譯完成之後,會以.class文件存在)。如果將Java執行環境比喻為操作系統,如果設置Path變數是為了讓操作系統找到指定的工具程序(以Windows來說就是找到.exe文件),則設置Classpath的目的就是讓Java執行環境找到指定的Java程序(也就是.class文件)。
有幾個方法可以設置Classpath,最簡單的方法是在系統變數中新增Classpath環境變數。在圖2-9中的「系統變數」下單擊「新建」按鈕,在「變數名」文本框中輸入Classpath,在「變數值」文本框中輸入Java類文件的位置。例如可以輸入「.;C:\Program Files\Java\jdk1.5.0_06\lib\tools.jar; C:\Program Files\Java\jdk1.5.0_06\lib\rt.jar」(jar文件是zip壓縮格式,其中包括.class文件和jar中的Classpath設置),每一路徑中間必須以;作為分隔。
事實上JDK 5.0默認就會到當前工作目錄(上面的.設置),以及JDK的lib目錄(這里假設是C:\Program Files\Java\jdk1.5.0_06\lib)中尋找Java程序。所以如果Java程序是在這兩個目錄中,則不必設置Classpath變數也可以找得到,將來如果Java程序不是放置在這兩個目錄時,則可以按上述設置Classpath。
如果所使用的JDK工具程序具有Classpath命令選項,則可以在執行工具程序時一並指定Classpath。例如:
javac -classpath classpath1;classpath3...
其中classpath1、classpath 2是實際要指定的路徑。也可以在命令符模式下執行以下的命令,直接設置目前的環境變數,包括Classpath變數(這個設置在下次重新打開命令符模式時就不再有效):
set CLASSPATH=%CLASSPATH%;classpath1;classpath3...
總而言之,設置Classpath的目的,在於告訴Java執行環境,在哪些目錄下可以找到您所要執行的Java程序。
良葛格的話匣子:
以上介紹的是幾個簡單的Path與Classpath設置方式,實際上還有一些設置方式。本章最後列出了幾個介紹Path、Classpath設置的網路資源鏈接,內容包括其他操作系統下的設置方式,您可以從中進一步了解相關的設置。
2.3 第一個Java程序
完成JDK相關環境設置之後,無論如何就先寫一個簡單的Java程序,以測試一下環境設置是否正確,順便增強一些學習的信心。以下要介紹的第一個Java程序是會顯示「嘿!我的第一個Java程序!」這段信息的簡單程序。
2.3.1 編寫和編譯Java程序
在正式編寫程序之前,先確定可以看得到的文件的擴展名。在Windows 2000/XP下默認是不顯示文件的擴展名的,這會造成重新命名文件時的困擾。如果目前在「資源管理器」下無法看到文件的擴展名,應先執行工具欄上的「工具」|「文件夾選項」並切換至「查看」頁面,取消「隱藏已知文件類型的擴展名」復選框,如圖2-12所示。
圖2-12 取消「隱藏已知文件類型的擴展名」復選框以顯示擴展名
接著選擇一個目錄來編寫Java源代碼文件。假設該文件存儲在C:\workspace目錄,您要新增一個「文本文件」(也就是.txt文件),並重新命名文件為HelloJava.java。由於是將文本文件的擴展名從.txt改為.java,所以系統會詢問您是否更改擴展名,應確定更改,接著雙擊HelloJava.java打開文件,並照著圖2-13所示編寫程序。
圖2-13 第一個Java程序
這個程序有幾點必須注意:
Java的源文件必須以擴展名 .java結束
這也就是必須讓「資源管理器」顯示擴展名的原因。
主文件名與類名稱必須一致
Java程序的類名稱是指class關鍵詞(Keyword)後的名稱。就這個例子而言,也就是HelloJava,該名稱必須與HelloJava.java的主文件名(HelloJava)一致。
注意每個字母的大小寫
Java程序中會區分字母的大小寫,System與system對Java程序來說是不一樣的名稱。
空白只能是半形空格符或是Tab字元
有些初學者可能不小心輸入了全形空格符,這很難檢查出來。
寫好程序並存檔後,接著打開一個命令符模式,並使用以下的命令切換至HelloJava.java所在的目錄(在此例中是C:\workspace):
> cd C:\workspace
接著使用javac工具程序來編譯.java文件,這里指定編譯HelloJava.java。命令如下:
C:\workspace\javac HelloJava.java
如果編譯順利成功,則在HelloJava.java所在的目錄,會出現一個HelloJava.class文件,這是已經編譯完成的Java位元組碼(Bytecodes)文件程序。
您可能會遇到以下的幾個錯誤,這表示您有一些地方操作有誤:
error: cannot read: HelloJava.java
這表示javac工具程序找不到您指定的.java文件,請檢查文件是否存在目前的目錄中,或是文件名稱是否有誤。
HelloJava.java:1: class HelloJava is public, should be declared in a file named HellJava.java
類名稱與主文件名不符,請確定主文件名與類名稱是相同的。
HelloJava.java:3: cannot find symbol
程序代碼中某些部分輸入錯了,最常發生的原因可能是沒有注意到字母大小寫。
javac 不是內部或外部命令、可執行的程序或批量文件
Path設置有誤或沒有在Path中加入JDK的bin目錄,請參考2.2節的內容。
2.3.2 執行Java程序
在順利編譯出 .class的文件之後,可以使用java工具程序來執行它。執行時必須指定類名稱,就以上的例子來說,也就是指定HelloJava.class這個文件的主文件名。命令執行方式如下:
C:\workspace>java HelloJava
java工具程序會根據您指定的類名稱,實際載入.class的文件,以上例來說,就是載入HelloJava.class並執行,執行的結果應該是圖2-14所示的畫面。
圖2-14 執行第一個Java程序的成功畫面
您可能會遇到以下的幾個錯誤,這表示您有一些地方操作有誤:
Exception in thread"main" java.lang.NoClassDefFoundError
java工具程序找不到您所指定的類,請確定指定的類存在目前的目錄中,名稱是否指定正確(如果是舊版的JDK,可能必須在Classpath中加入.,表示可於目前目錄中找到所指定的類)。
Exception in thread "main" java.lan.NosuchMethodError: main
沒有指定Java程序的入口(Entry Point)。java工具程序指定的類必須要有一個程序入口,也就是必須包括main(String[] args)這個方法(Method),請確定您的程序中包括它,必須與圖2-13所示的HelloJava.java內容一致。
在後面的章節中,如果不是要特別強調,就不再重復指出如何編譯與執行Java程序。當在後面的章節中說要編譯Java程序時,就是指使用javac工具程序來編譯.java;而說要執行Java程序時,就是指使用java工具程序來執行指定的Java類。
⑷ dos jar 打包 怎麼弄哈! 哈哈 只要dos 謝了 !
For more information on a specific command, type HELP command-name
ASSOC Displays or modifies file extension associations.
AT Scheles commands and programs to run on a computer.
ATTRIB Displays or changes file attributes.
BREAK Sets or clears extended CTRL+C checking.
CACLS Displays or modifies access control lists (ACLs) of files.
CALL Calls one batch program from another.
CD Displays the name of or changes the current directory.
CHCP Displays or sets the active code page number.
CHDIR Displays the name of or changes the current directory.
CHKDSK Checks a disk and displays a status report.
CHKNTFS Displays or modifies the checking of disk at boot time.
CLS Clears the screen.
CMD Starts a new instance of the Windows command interpreter.
COLOR Sets the default console foreground and background colors.
COMP Compares the contents of two files or sets of files.
COMPACT Displays or alters the compression of files on NTFS partitions.
CONVERT Converts FAT volumes to NTFS. You cannot convert the
current drive.
COPY Copies one or more files to another location.
DATE Displays or sets the date.
DEL Deletes one or more files.
DIR Displays a list of files and subdirectories in a directory.
DISKCOMP Compares the contents of two floppy disks.
DISKCOPY Copies the contents of one floppy disk to another.
DOSKEY Edits command lines, recalls Windows commands, and creates macros.
ECHO Displays messages, or turns command echoing on or off.
ENDLOCAL Ends localization of environment changes in a batch file.
ERASE Deletes one or more files.
EXIT Quits the CMD.EXE program (command interpreter).
FC Compares two files or sets of files, and displays the differences
between them.
FIND Searches for a text string in a file or files.
FINDSTR Searches for strings in files.
FOR Runs a specified command for each file in a set of files.
FORMAT Formats a disk for use with Windows.
FTYPE Displays or modifies file types used in file extension associations.
GOTO Directs the Windows command interpreter to a labeled line in a
batch program.
GRAFTABL Enables Windows to display an extended character set in graphics
mode.
HELP Provides Help information for Windows commands.
IF Performs conditional processing in batch programs.
LABEL Creates, changes, or deletes the volume label of a disk.
MD Creates a directory.
MKDIR Creates a directory.
MODE Configures a system device.
MORE Displays output one screen at a time.
MOVE Moves one or more files from one directory to another directory.
PATH Displays or sets a search path for executable files.
PAUSE Suspends processing of a batch file and displays a message.
POPD Restores the previous value of the current directory saved by PUSHD.
PRINT Prints a text file.
PROMPT Changes the Windows command prompt.
PUSHD Saves the current directory then changes it.
RD Removes a directory.
RECOVER Recovers readable information from a bad or defective disk.
REM Records comments (remarks) in batch files or CONFIG.SYS.
REN Renames a file or files.
RENAME Renames a file or files.
REPLACE Replaces files.
RMDIR Removes a directory.
SET Displays, sets, or removes Windows environment variables.
SETLOCAL Begins localization of environment changes in a batch file.
SHIFT Shifts the position of replaceable parameters in batch files.
SORT Sorts input.
START Starts a separate window to run a specified program or command.
SUBST Associates a path with a drive letter.
TIME Displays or sets the system time.
TITLE Sets the window title for a CMD.EXE session.
TREE Graphically displays the directory structure of a drive or path.
TYPE Displays the contents of a text file.
VER Displays the Windows version.
VERIFY Tells Windows whether to verify that your files are written
correctly to a disk.
VOL Displays a disk volume label and serial number.
XCOPY Copies files and directory trees.
沒找到你說的打包命令
⑸ Java編好的程序在DOS里用什麼命令可以把它打包成exe可執行文件請高手
java程序運行是離不開jre運行時環境的,JDK可以運行java就是因為JDK裡面自帶了jre,沒有jre運行時的機子是無法運行java程序的,就算你把java程序轉成exe,同樣也離不開jre。據我所知,java沒有提供轉換成exe的命令,你要轉的話,可以試試exe4j這個軟體,轉換後把exe和jre直接發給用戶,用戶可以直接運行,不過記得要將jre路徑選擇為當前目錄。