try{
公司主營業(yè)務:成都網站設計、成都網站制作、移動網站開發(fā)等業(yè)務。幫助企業(yè)客戶真正實現互聯網宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯建站是一支青春激揚、勤奮敬業(yè)、活力青春激揚、勤奮敬業(yè)、活力澎湃、和諧高效的團隊。公司秉承以“開放、自由、嚴謹、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領域給我們帶來的挑戰(zhàn),讓我們激情的團隊有機會用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯建站推出金湖免費做網站回饋大家。
Thread.sleep(1000);
}catch(InterruptedException e){
//撲捉發(fā)生在線程中的異常,當一個正在執(zhí)行的線程被中斷時就會出現這個異常,添加catch后當程序被雙擊停止時不會出現錯誤
e.printStackTrace();
}
lbClock.setText(getDate());
}
jad或小穎反編譯軟件可以將class文件反編譯成java文件
到google下找下這兩個軟件的下載地址就是的。
JAVA編程常用的軟件:
1、Eclipse:
Eclipse 是一個開放源代碼的、基于 Java 的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務,用于通過插件組件構建開發(fā)環(huán)境。幸運的是,Eclipse 附帶了一個標準的插件集,包括 Java 開發(fā)工具(Java Development Tools,JDT)。
2、MyEclipse:
MyEclipse是Eclipse的升級版,也是一款功能強大的J2EE集成開發(fā)環(huán)境,由Genuitec公司發(fā)布,提供免費版和收費版。被譽為最好用的Java IDE之一。
MyEclipse 是對Eclipse IDE的擴展,利用它可以在數據庫和JavaEE的開發(fā)、發(fā)布以及應用程序服務器的整合方面極大的提高工作效率。
3、IntelliJ IDEA:
IntelliJ IDEA是一款綜合的Java 編程環(huán)境,被許多開發(fā)人員和行業(yè)專家譽為市場上最好用的IDE之一,與MyEclipse齊名。
它提供了一系列最實用的的工具組合:智能編碼輔助和自動控制,支持J2EE,Ant,JUnit和CVS集成,非平行的編碼檢查和創(chuàng)新的GUI設計器。
4、NetBeans:
NetBeans IDE是一個屢獲殊榮的集成開發(fā)環(huán)境,可以方便的在Windows、Mac、Linux和Solaris中運行。NetBeans包括開源的開發(fā)環(huán)境和應用平臺,NetBeans IDE可以使開發(fā)人員利用Java平臺能夠快速創(chuàng)建Web、企業(yè)、桌面以及移動的應用程序。
5、BlueJ:
BlueJ是一款支持Java編程語言的集成開發(fā)環(huán)境(IDE)。它原本是為了教育目的而開發(fā)的,同時也適合于那些想做小型軟件開發(fā)的開發(fā)人員。它的運行需要JDK(Java開發(fā)工具包)的幫助。BlueJ主要是為面向對象的程序設計教學而開發(fā)的,因此它的設計不同于其他的開發(fā)環(huán)境。
參考資料來源:百度百科-BlueJ
參考資料來源:百度百科-IntelliJ IDEA
參考資料來源:百度百科-Netbeans
參考資料來源:百度百科-eclipse
參考資料來源:百度百科-MyEclipse
Java編譯輔助工具,能方便實時修改Java源代碼并編譯、保存Java源文件,操作方便,省去了反復輸入編譯命令的麻煩。
軟件特性
Java編譯輔助工具,能方便實時修改Java源代碼并編譯、保存Java源文件,
操作方便,省去了反復輸入編譯命令的麻煩。
Java編譯器瘀1.03圀梔愀琀's渀攀眀:
1.全新的美化界面,Java編譯好心情;
2.增加了打開Java文件功能,方便用戶實時處理源代碼;
3.自動根據分辨率調整窗口大小,滿足各種屏幕;
4.修正了幾處細節(jié)的BUG。
Java編譯器瘀1.02圀梔愀琀's渀攀眀:
1.軟件外觀作了適當調整,編輯區(qū)能自適應屏幕;
2.修正了按退出鍵無保存提示的BUG;
3.優(yōu)化了編譯的調用過程,自動清理殘留的.class文件;
4.增設了幾處出錯處理,運行更穩(wěn)定。
Java編譯器瘀1.01圀梔愀琀's渀攀眀:
1.輸出文件名采用系統(tǒng)智能判斷,無需用戶設置;
2.保存時檢測Java文件目錄的路徑正確性;
3.修正了文件名為空時的默認文件名為None_Name;
4.增加了退出前未保存的提示。
要在java中調用c語言的庫,需要使用Java提供了JNI。
舉例說明
在c語言中定義一個 void sayHello()函數(打印Hello World);然后在Java中調用這個函數顯示Hello Word.
現在分別從Java和C語言兩部分說明:
1. Java 部分
首先定義一個HelloNative,在其中申明sayHello函數,函數要申明為Native 類型的.如下:
public class HelloNative {
public native void sayHello();
}
編譯這個類,生成class文件:
javac HelloWorld.java
利用javah生成需要的h文件
javah HelloNative
生成的 h文件大概如下:
/* DO NOT EDIT THIS FILE - it is machine generated */
#include jni.h
/* Header for class HelloNative */
#ifndef _Included_HelloNative
#define _Included_HelloNative
#ifdef __cplusplus
extern "C" {
#endif
/*
* Class: HelloNative
* Method: sayHello
* Signature: ()V
*/
JNIEXPORT void JNICALL Java_HelloNative_sayHello
(JNIEnv *, jobject);
#ifdef __cplusplus
}
#endif
#endif
可以看一下上面自動生成的程序,程序include了jni.h,這個頭文件在 $JAVA_HOME下的include文件夾下. 還可以發(fā)現生成的函數名是在之前的函數名前面加上了Java_HelloNative。
2. C語言部分
根據上面生成的h文件編寫相應的代碼實現,建立一個 HelloNative.cpp用來實現顯示Hello World的函數.如下:
#include stdio.h
#include "HelloNative.h"
JNIEXPORT void JNICALL Java_HelloNative_sayHello(JNIEnv *, jobject)
{
printf("Hello World!\n");
}
代碼編寫完成之后,我們再用gcc編譯成庫文件,命令如下;
gcc -fPIC -I/usr/lib/jvm/java-7-openjdk-i386/include -I/usr/lib/jvm/java-7-openjdk-i386/include/linux -shared -o libHelloNative.so HelloNative.cpp
這樣就會在當前目錄下生成一個libHelloNative.so的庫文件.這時需要的庫已經生成,在C語言下的工作已經完成了.
接下來需要在Java中編寫一個程序測試一下.在程序前,需要將我們的庫載入進去.載入的方法是調用Java的 System.loadLibrary("HelloNative");
public class TestNative
{
static {
try {
System.loadLibrary("HelloNative");
}
catch(UnsatisfiedLinkError e) {
System.out.println( "Cannot load hello library:\n " + e.toString() );
}
}
public static void main(String[] args) {
HelloNative test = new HelloNative();
test.sayHello();
}
}
但是再編譯后,運行的時候,問題又出現了.
Cannot load hello library:
java.lang.UnsatisfiedLinkError: no HelloNative in java.library.path
Exception in thread "main" java.lang.UnsatisfiedLinkError: HelloNative.sayHello()V
at HelloNative.sayHello(Native Method)
at TestNative.main(TestNative.java:13)
載入庫失敗,但是庫明明就是放在當前文件夾下的,怎么會載入失敗呢?
用System.getProperty("java.library.path")查看,發(fā)現java.library.path中并不u存在當前的目錄.主要有以下的幾個解決辦法:
1) 將生成的庫復制到java.library.path有的路徑中去,當然這樣不是很好
2) 設置環(huán)境變量export LD_LIBRARY_PATH=.:$LD_LIBRARY_PATH ,將當前的目錄加入到LD_LIBRARY_PATH中
3) 設置java 的選項,將當前的目錄加入到其中 .java -Djava.library.path=. $LD_LIBRARY_PATH
這樣之后程序就能夠成功的運行了.可以看見顯示的"Hello World!"了
Eclipse 是一個開放源代碼的、基于 Java 的可擴展開發(fā)平臺。就其本身而言,它只是一個框架和一組服務,用于通過插件組件構建開發(fā)環(huán)境。幸運的是,Eclipse 附帶了一個標準的插件集,包括 Java 開發(fā)工具(Java Development Tools,JDT)。
雖然大多數用戶很樂于將 Eclipse 當作 Java IDE 來使用,但 Eclipse 的目標不僅限于此。Eclipse 還包括插件開發(fā)環(huán)境(Plug-in Development Environment,PDE),這個組件主要針對希望擴展 Eclipse 的軟件開發(fā)人員,因為它允許他們構建與 Eclipse 環(huán)境無縫集成的工具。由于 Eclipse 中的每樣東西都是插件,對于給 Eclipse 提供插件,以及給用戶提供一致和統(tǒng)一的集成開發(fā)環(huán)境而言,所有工具開發(fā)人員都具有同等的發(fā)揮場所。
這種平等和一致性并不僅限于 Java 開發(fā)工具。盡管 Eclipse 是使用 Java 語言開發(fā)的,但它的用途并不限于 Java 語言;例如,支持諸如 C/C++、COBOL 和 Eiffel 等編程語言的插件已經可用,或預計會推出。Eclipse 框架還可用來作為與軟件開發(fā)無關的其他應用程序類型的基礎,比如內容管理系統(tǒng)。
基于 Eclipse 的應用程序的突出例子是 IBM 的 WebSphere Studio Workbench,它構成了 IBM Java 開發(fā)工具系列的基礎。例如,WebSphere Studio Application Developer 添加了對 JSP、servlet、EJB、XML、Web 服務和數據庫訪問的支持。