jdk11預編譯java腳本
你可以再eclipse下編輯java程序,就免去了很多麻煩.
這個Eclipse可以用下面三個文件合成:
1,Eclipse SDK壓縮文件: "eclipse-SDK-3.2.2-win32",
2,EMF壓縮文件:"emf-sdo-SDK-2.2.2"
3,GEF壓縮文件:"GEF-ALL-3.2.2"
網路一下這3個文件名,就可以找到下載的地方,然後把這3個文件解壓到同一個文件夾(解壓顯示替代的話選擇'全部選否'),就可以了,然後運行eclipse就可以編輯Java程序了.
B. jdk中提供了什麼方法對java類文件進行編譯
importjava.lang.reflect.Method;
importjava.net.URL;
importjava.net.URLClassLoader;
importjavax.tools.JavaCompiler;
importjavax.tools.ToolProvider;
publicclassDemo01{
publicstaticvoidmain(String[]args)throwsException{
JavaCompilercompiler=ToolProvider.getSystemJavaCompiler();
intresult=compiler.run(null,null,null,"C:/source/HelloWorld.java");
System.out.println(result==0?"編譯成功":"編譯失敗");
URL[]urls=newURL[]{newURL("file:/"+"C:/source/")};
URLClassLoaderclassLoader=newURLClassLoader(urls);
Class<?>clazz=classLoader.loadClass("HelloWorld");
//調用main方法
Methodm=clazz.getMethod("main",String[].class);
m.invoke(null,(Object)newString[]{});
}
}
上述代碼會將c盤目錄下的HelloWorld.java文件編譯成HelloWorld.class文件,並將其載入到JVM虛擬機中,調用main方法將其執行
C. jdk11已經沒有jre了嗎centos安裝jdk11,沒有jre,啟動tomcat導致無法找到jre,啟動報錯
原因是找不到jre,因為jdk11中沒有jre,
辦法1: 使用jlink生成jre;
辦法2: 指定jre位置, 配置如下:
#/etc/profile文件末添加如下,解決jre找不到的問題
JAVA_HOME=/usr/app/jdk-11.0.1/#這個就配置你jdk的位置
JRE_HOME=$JAVA_HOME#指定jre位置
CLASSPATH=$JAVA_HOME/lib
PATH=$JRE_HOME/bin:$JAVA_HOME/bin:$PATH
exportPATHJAVA_HOMECLASSPATH
辦法3: 你也可以選擇使用jetty,jetty不依賴jre.
原文鏈接網頁鏈接
D. 如何用JDK編譯JAVA程序
1 你把文件名拼錯了,java對大小寫是敏感的。打錯了當然找不到文件。
2 虛擬機沒有找到必須的類庫。你可能沒有在autoexec.bat文件中設置classpath。進入windows的運行,輸入sysedit,然後在autoexec.bat文件中加入這么一行:
set classpath=你的jdk的安裝目錄/lib; 例如set classpath=c:/jdk1.3.0_02/lib;
保存退出後,你要在dos窗口的c根目錄下執行一遍autoexec.bat文件已保證被設置了,當然,如果你願意也可以重啟機器。
E. 編寫和運行Java程序的步驟是什麼每一步的結果是什麼在JDK中,Java語言的編譯命令是什麼急需答案啊。
步驟:1、編寫java源文件:可用記事本等相關的文本文檔寫源代碼,也可使用java開發集成環境,如:JCreator LE JCreator pro eclipse Myeclipse 等相關的集成開發工具。
2、編譯java源文件生成class文件:手寫的源文件(即不使用開發工具所寫的),在DOS中使用javac 完整的java源文件命來編譯使其生成class文件。注意:寫源文件時,一定要注意存檔。修改源文件也是一樣需要存檔。
3、運行class文件:在dos中輸入所寫的源文件名字(不需要寫後綴名-即.class 嚴格區分大小寫 編譯不需要區分大小寫)。
如使用開發工具所寫:請參照相對應的手冊來點擊開發工具中的按鈕來編譯運行。
java語言的編譯命令就是javac 在dos中輸入javac可見到這個命令的詳細介紹。其他命令也是一樣。至於每一步的結果是什麼,在dos中運行請關注dos運行後的變化。在開發工具中運行請關注開發工具中的改變。不同的程序會產生不同的結果。如:
public class Hello
{
public static void main(String[] args)
{
System.out.println("Hello java");
}
}
這段代碼,在dos中運行後會出現hello java這句話。用開發工具所寫 ,請關注開發工具的界面。
以上內容純屬手打--panzer。希望對你有所幫助。如有疑問:開eml我:[email protected]!
F. JDK編譯.java腳本,執行.class
你環境變數有沒有配置好呢 程序沒錯 肯定是環境變數配置的有問題 看下你的classpath
G. 如何用JDK編譯JAVA程序
JAVA版hello world全攻略侯光敏 看到很多技術網站的BBS上面充斥著java初學者的關於運行第一個java程序的求助信息,我覺得作為過來人很有寫這篇文章的必要,因為他們遇到的都是些很低級的問題,但是讓這些問題占據bbs上那麼多寶貴的空間就太不應該了。 要搞清楚的基本概念 java是一種跨平台的網路語言,為了能夠在不同平台上運行,它使用了虛擬機這個概念。後綴名為java的文件是源代碼文件,它經過編譯後生成的是class文件。虛擬機執行的就是這些class文件,將它們轉化成為不同平台能夠運行的命令。這就是為什麼java的效率比較低的原因。也是因為這個原因,在java里沒有其它語言的使用者熟悉的exe文件的概念。 執行hello world的方法 切記:在命令行中輸入 javac 源文件名.java (編譯) java 源文件名 (執行,沒有後綴) 這里說的是java application,裡麵包括main函數。 如果hello world是applet版的,在命令行中輸入appletviewer 源文件名 (已經編譯後的class文件) 如果class文件已經嵌入了html網頁中,直接用IE打開就行了。 application經常出現的錯誤 系統提示Exception in thread "main " java.lang.NoClassDefFoundError。出現這個提示的原因可能有: 1 你把文件名拼錯了,java對大小寫是敏感的。打錯了當然找不到文件。 2 虛擬機沒有找到必須的類庫。你可能沒有在autoexec.bat文件中設置classpath。進入windows的運行,輸入sysedit,然後在autoexec.bat文件中加入這么一行:set classpath=你的jdk的安裝目錄/lib; 例如set classpath=c:/jdk1.3.0_02/lib; 保存退出後,你要在dos窗口的c根目錄下執行一遍autoexec.bat文件已保證被設置了,當然,如果你願意也可以重啟機器。 系統提示HelloWorld.java:1: Public class helloworld must be defined in a file called "HelloWorld.java ". public class helloworld{^ 一個Java源程序中可以定義多個類,但是,具有public 屬性的類只能有一個,而且要與文件名相一致。還有,main方法一定要放在這個public 的類之中,這樣才能運行這個類。 系統提示Exception in thread "main " java.lang.NoSuchMethodError: main 出現這個異常是因為你在抄書上的代碼時抄錯了。主函數一定要這么寫:public static void main(String args[]) 一個字都不能錯,切記!!! applet常出現的錯誤 IE顯示applet已經啟動,但是還是只顯示灰色的一塊。這種問題在使用jBuilder等集成開發工具是最容易出現,用appletviewer就沒有問題。這是因為你在applet中使用了IE不支持的java版本。jBuilder在做applet是默認使用了swing組件,但是IE只支持jdk1.1,所以造成了這種情況。只要把導入swing的語句去掉就行了,然後按照提示修改一下代碼,不要用swing組件的方法。如果你覺得swing組件很漂亮,打死都要用,那麼就裝一個java的plug-in這個東西在你裝jdk的高版本時就自動裝上了。看看你的控制面版中有沒有那個紅鼻子的小東西。但是切記,如果你要用它,那麼你的html的文件的寫法就和從前不一樣了,不能簡單的用CODE來指明類了。至於怎麼寫,不在這篇文章的討論范圍內了(你寫一個hello world還要用plug-in就搞大了)。網上有很多文章講怎麼寫。 用慣了點擊就執行的的exe文件自然就很不習慣打開dos窗口輸入命令行,你可以把它做成jar文件,但是對hello world來說有點麻煩,有個簡單的傻辦法:自己做一個批處理文件。例如:用記事本寫一個run.txt文件,內容是:java 你的主文件名 ,然後把後綴改成bat存到和主文件相同的目錄下。呵呵,雙擊就運行了,夠傻吧。 如果你非要用exe文件運行,jet等工具可以把class文件做成exe文件。但是這樣也失去了java的跨平台性。 以上就是hello world的全攻略了,如果你還看不到hello world,我倒!你還是別學java了。
H. Java11的新功能有哪些
Java 11 JDK中已計劃的新功能
目前來看,JDK 11已有九個已經確認的新功能,而且還有更多新功能仍在考慮之中。計劃的新功能包括:
HTTP客戶端(標准),這個功能於JDK 9中引入並在JDK 10中得到了更新,現在終於轉正了。該API通過CompleteableFutures提供非阻塞請求和響應語義,可以聯合使用以觸發相應的動作。自從JDK 9和10中引入該功能後,JDK 11完全重寫了該功能,現在其實現完全是非同步的。RX Flow的概念也得到了實現,這樣就無需為了支持HTTP/2而創造許多概念了。現在,在用戶層請求發布者和響應發布者與底層套接字之間追蹤數據流更容易了。這降低了復雜性,並最大程度上提高了HTTP/1和HTTP/2之間的重用的可能性。Epsilon垃圾回收器,被稱為「no-op」回收器,它僅負責內存分配,卻沒有實現任何實際的內存回收機制。Epsilon回收器可以用於性能測試、內存壓力測試和虛擬機介面。它還可以用於短生命周期的任務。lambda參數的局部變數語法,可以消除隱含類型表達式中正式參數定義的語法與局部變數定義語法的不一致。這樣就能在隱含類型的lambda表達式中定義正式參數時使用var了。Java的類文件格式將被擴展,以支持新的常量池,CONSTANT_Dynamic。其目標是降低開發新形式的可實現類文件約束帶來的成本和干擾。採用Curve25519和Curve448加密的密鑰交換比現有的Diffie-Hellman橢圓曲線密鑰交換方式更有效、更安全。根據IETF的資料,Curve25519和Curve448兩種橢圓曲線採用常量時間的實現方式,以及不會發生異常的數乘實現,能更好地抵抗各種旁路攻擊,包括時序攻擊、緩存攻擊等。該提案的目標是為密鑰交換方法提供一個API和實現,同時開發一個平台無關、純Java的的實現。由於該提案採用了復雜且精密的模算數,因此還是有風險的。飛行記錄儀(Flight Recorder)將提供低開銷的數據收集框架,用來調試Java應用程序和HotSpot JVM。飛行記錄儀是Oracle的商業版JDK的功能,但在JDK 11中,其代碼將移動到公開代碼庫中,這樣所有人都能使用該功能了。Iclouded將作為API,以事件的形式產生或消耗數據,同時提供緩存機制、二進制數據工具,同時支持配置和事件過濾。該提案還提議為OS、HotSpot和JDK庫提供事件。更新platform API以支持Unicode版本10.0,從而使Java跟上潮流。預計以下的類將支持:lang包中的Character和Stringawt.font包中的NumericShapertext包中的Bidi、BreakIterator和Normalizer實現ChaCha20和Poly1305加密演算法。ChaCha20是種相對較新的流加密演算法,能代替舊的、不安全的R4流加密。ChaCha20將與Poly1305認證演算法配對使用。ChaCha20和ChaCha20-Poly1305加密實現將通過crypto.CipherSpi API於SunJCE(Java加密擴展)中提供。增強Java啟動器,使之能夠運行單一文件的Java源代碼,使得應用程序可以直接從源代碼運行。單文件程序常見於小型工具,或開發者初學Java時使用。而且,單一源代碼文件有可能會編譯成多個類文件,這會增加打包開銷。由於這些原因,在運行程序之前進行編譯,已成為了不必要的步驟。Java JDK 11仍在開發中的新功能
Java 11的創建者們還在考慮幾個對JDK 11的變更或新功能的提案:
給Java添加raw字元串字面值。這樣可以更容易地以人類可閱讀的形式書寫字元序列,而無需特殊的Java標記。這樣也能更容易地將非Java語法的字元串提供給Java使用,還能支持多行字元串,而無需使用特殊的標記。擴展switch語句,使之能作為語句或表達式使用。這樣還能改進switch處理null值的方式。這些改動可以簡化編程,同時為switch支持模式匹配做准備。嵌套的訪問控制,對應於Java當前的嵌套類型。嵌套可以讓邏輯上屬於同一代碼實體但被編譯到不同的類文件中的類互相訪問對方的私有成員,而無需讓編譯器插入擴大訪問許可權的方法。JDK 11刪除的功能
Java EE和CORBA模塊從Java SE9就成了不推薦使用(deprecated),並計劃在未來的版本中刪除。這個未來版本就是JDK 11。
Java SE 6於2006年12越發布,它為Java EE平台提供了整套的Web服務技術棧:JAX-WS(Java API for XML-based Web Services),JAXB(Java Architecture for XML Binding),JAF(JavaBeans Activation Framework),以及Common Annotations for Java。這些年來,Java EE版本在不斷進化,這給Java SE造成了許多麻煩,例如加入與Java SE無關的技術,以及同時維護兩個Java版本的困難變得更大。由於獨立的Java EE版本由第三方網站提供,Oracle說Java SE或JDK中已經沒有必要提供Java EE了。
當然,一些依賴於JDK中的Java EE API及工具的應用程序將無法編譯或運行。將JDK 6、7或8移植到新版本時將會產生二進制不兼容和源代碼不兼容。Oracle說,受到這些影響的開發者可以部署相應的Java EE版本。
CORBA來自於二十世紀九十年代,Oracle說,現在用CORBA開發現代Java應用程序已經沒有意義了,維護CORBA的成本已經超過了保留它帶來的好處。
但是刪除CORBA將使得那些依賴於JDK提供部分CORBA API的CORBA實現無法運行。目前還沒有第三方CORBA版本,也不確定是否會有第三方願意接手CORBA API的維護工作。
JavaFX已經被移除,因此已經與Java JDK每年兩次的更新無關。
I. 安裝JDK後怎麼編譯運行JAVA程序
如果你的圖片沒發錯的話那麼你出現的問題就太粗心了
你編譯的文件是hello.java
javac hello.java //產生hello.class文件
而你解釋的文件是WelcometoJava.class
java WelcometoJava //你並沒有編譯WelcometoJava,說以不會產生WelcometoJava.class
順便解釋一下,一個文件不編譯是無法直接執行的。
所以dos報錯找不到WelcometoJava這個類
你只需這么改就行了
在dos界面
javac WelcometoJava.java //成功後生成WelcometoJava.class文件
java WelcometoJava
另外記得文件名要和public的類名一致