① javac和java 有什麼區別和聯系
javac和java命令行中的-classpath選項
這是個很基礎的問題,但是因為基本上都是用現有的IDE工具 來開發java程序,所以很少有人意識到這一點。
javac
-classpath,設定要搜索類的路徑,可以是目錄,jar文件,zip文件(裡面都是class文件),會覆蓋掉所有在CLASSPATH裡面的設定。
-sourcepath, 設定要搜索編譯所需java 文件的路徑,可以是目錄,jar文件,zip文件(裡面都是java文件)。
所以一個完整的javac命令行應該是這樣的,
假設abc.java在路徑c:\src裡面,在任何的目錄的都可以執行以下命令來編譯。
javac -classpath c:\classes;c:\jar\abc.jar;c:\zip\abc.zip -sourcepath c:\source\project1\src;c:\source\project2 \lib\src.jar;c:\source\project3\lib\src.zip c:\src\abc.java
表示編譯需要c:\classed下面的class文件,c:\jar\abc.jar裡面的class文件,c:\zip\abc.zip裡面的class文件
還需要c:\source\project1\src下面的源文件,c:\source\project2 \lib\src.jar裡面的源文件,c:\source\project3\lib\src.zip裡面的源文件,
注意:jar,zip裡面的源文件不會有什麼改動,目錄下的源文件,有可能會被重新編譯。
java
-classpath, 設定要搜索的類的路徑,可以是目錄,jar文件,zip文件(裡面都是class文件),會覆蓋掉所有的CLASSPATH的設定。
由於所要執行的類也是要搜索的類的一部分,所以一定要把這個類的路徑也放到-classpath的設置裡面。
表現在,在要執行的類的路徑裡面執行java時,一定要添加上點號(.)標示本目錄也要搜索。
假設abc.class在路徑c:\src裡面
可以在任何路徑下執行以下命令
java -classpath c:\classes;c:\jar\abc.jar;c:\zip\abc.zip;c:\src abc
問題:如果main.class屬於c:\jar\abc.jar,並且在com.cnblogs.jeffchen這個包里,那麼執行java -classpath c:\classes;c:\jar\abc.jar;c:\zip\abc.zip;com.cnblogs.jeffchen.main即可, 但是如果classpath中包含多個jar包呢?並且其他jar包中也有com.cnblogs.jeffchen會發生什麼情況?錯誤?
在windows下,
文件路徑的分割符為反斜杠 \
類或者java文件列表的分割符為分號 ;
在linux下
文件路徑的分隔符位斜杠 /
類或者java文件列表的分隔符為冒號 :
一個linux下編譯和運行的例子
/usr/local/java/bin/javac -classpath /tmp/javatest/lib/mail-1.3.3.jar -d /tmp/javatest/bin/ /tmp/javatest/src/jp/co/realseed/Capability.java
/usr/local/java/bin/java -classpath /tmp/javatest/lib/mail-1.3.3.jar:/tmp/javatest/bin/ jp.co.realseed.Capability
② javac和Eclipse編譯器有什麼區別
Eclipse已經實現了自己的編譯器,命名為 Eclipse編譯器for Java (ECJ)。
它不同於javac,Sun JDK附帶的編譯器。一個顯著的區別是,Eclipse編譯器允許您運行實際上沒有正確編譯的代碼。如果錯誤的代碼塊從未運行,您的程序將運行良好。
另一個不同之處在於Eclipse編譯器允許在Eclipse中進行增量構建IDE,也就是所有的代碼一旦你完成輸入就編譯。
Eclipse自帶的編譯器也是很明顯的,因為你可以編寫,並且在Eclipse中運行Java代碼,甚至不安裝Java SDK。
③ javac和javaw有什麼區別,是不是一個性質的啊
你好,簡單而且容易了解的說法是:若採用java 指令執行class時候,該ms-dos窗口關閉則整個程序也會關閉,若用此執行窗口程序或是deamon程序的話,會很不方便(因為ms-dos窗口必須存在),所以用javaw指令來避免這種狀況發生,另外關於GUI的程序一般用javaw.exe
④ java 和javac的區別
在DOS界面,安裝完JAVA且PATH了安裝路徑就會有這兩個方法,其中JAVAC命令是把寫好的。txt文件編譯成。java文件。C是CREADT的意思。當想執行java文件的時候就要用java命令了。
⑤ javac與java的區別是什麼
javac 可以將java源文件編譯為class位元組碼文件
如 javac HelloWorld.java
運行javac命令後,如果成功編譯沒有錯誤的話,會出現一個HelloWorld.class的文件。
java 可以運行class位元組碼文件
如 java HelloWorld
注意java命令後面不要加.class
⑥ Java與C++程序在編譯和運行上有什麼區別
但卻有著許多的不同,最大的不同,可以說是編譯和運行了。
高級語言寫出來的代碼,最終都會變為機器碼,計算機才能識別。
匯編與機器碼最接近,C++與Java都會直接或間接編程匯編以後,再運行。
C++經編譯器(Unix下CC命令,Windows下CL命令)把源碼直接編譯成計算機可以認識的機器碼,如exe,dll等文件。
Java源文件都需要用javac命令將源碼編譯為class文件,但是這個class文件無法被計算機直接識別,但可以被JVM即Java虛擬機識別。
運行Java程序時,先啟動一個虛擬機,虛擬機載入class文件,方可執行。
這樣,同樣的代碼被編譯為同樣的class文件,也稱作位元組碼,在不同的平台上,運行同樣的位元組碼,這樣,Java跨平台的特性就顯示出來了!而C++則辦不到。 追問: 大哥,你似乎抄襲了本人在網路上的回答,聲明出處吧。 回答: 呵呵,當然這個問題我不會,但是看完網路你的回答明白了(還給你改了倆錯別字^_^)。這個東西本來就是相互借鑒的我來問問也是學習來著。
⑦ javac與java的區別
javac用來編譯java文件,java用來執行。
1,javac命令用來編譯java文件,例如編寫一個Test.java文件,使用javac Test.java可以執行編譯操作,將生成一個Test.class文件。
2,java命令可以執行生成的class文件,使用java Test可以執行編寫的代碼。
⑧ javacpl和javac有何區別
javac是用來編譯java程序的。
主要信息:
C語言是一門面向過程的、抽象化的通用程序設計語言,廣泛應用於底層開發。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著跨平台的特性,以一個標准規格寫出的C語言程序可在包括類似嵌入式處理器以及超級計算機等作業平台的許多計算機平台上進行編譯。最新的C語言標準是C18。
當前階段,在編程領域中,C語言的運用非常之多,它兼顧了高級語言和匯編語言的優點,相較於其它編程語言具有較大優勢。計算機系統設計以及應用程序編寫是C語言應用的兩大領域。同時,C語言的普適較強,在許多計算機操作系統中都能夠得到適用,且效率顯著。