2009年2月9日 星期一

初學者必讀:將JAVA編譯為EXE的幾種方法

將Java應用程序本地編譯為EXE的幾種方法(建議使用JOVE和JET)。

a. 利用微軟SDK-Java 4.0所提供的jexegen.exe創建EXE文件,這個軟件可以從微軟的網站免費下載,地址如下:http://www.microsoft.com/java/download/dl_sdk40.htm 

jexegen的語法如下: 
Code:

jexegen /OUT:exe_file_name 
/MAIN:main_class_name main_class_file_name.class 
[and other classes]



b. Visual Cafe提供了一個能夠創建EXE文件的本地編譯器。你需要安裝該光盤上提供的EXE組件。 

c. 使用InstallAnywhere創建安裝盤。

d. 使用IBM AlphaWorks提供的一個高性能Java編譯器,該編譯器可以從下面的地址獲得:http://www.alphaworks.ibm.com/tech/hpc 

e. JET是一個優秀的Java語言本地編譯器。該編譯器可以從這個網站獲得一個測試版本:http://www.excelsior-usa.com/jet.html 

f. Instantiations公司的JOVE 

http://www.instantiations.com/jove/...ejovesystem.htm 

JOVE公司合併了以前的SuperCede,一個優秀的本地編譯器,現在SuperCede已經不復存在了。 

g. JToEXE

Bravo Zulu Consulting, Inc開發的一款本地編譯器,本來可以從該公司的網頁上免費下載的,不過目前在該公司的主頁上找不到了。

h. 從www.towerj.com獲得一個TowerJ編譯器,該編譯器可以將你的CLASS文件編譯成EXE文件。 

網友分享:鍵盤上那些不常用的鍵的功能

今天和大家分享一點不常用的技巧——鍵盤上那些不常用的鍵的功能。如果您覺得有用就收藏起來吧!

按「Home」:將光標移到行首

按「End」 :將光標移到行尾

按「PageUp」: 每按一次光標向上移一屏幕

按「PageDown」:每按一次,光標向下移一屏幕

按「Ctrl+Home」:將光標移到文件的最前面

按「按「←」鍵(有的鍵盤上是「BackSpace」):刪除光標前面的字符

按「Delete鍵(或數字鍵盤區的「Del」): 刪除光標後面的字符

Ctrl+End」:將光標移到文件的最後面

大寫字母鎖定鍵:Caps Lock

用於大寫字母和小寫字母的切換,按一下該鍵,數字鍵盤區的上方有一對應的指示燈,燈亮,為大寫輸入狀態。再按一下,燈熄,輸入小寫字母。

上檔鍵(也叫「交換鍵」):Shift

1、按住「Shift」鍵不松,再加按其它鍵,將輸入該鍵面上面的符號

2、用於大小寫交換:若當前為大寫狀態(Caps Lock燈亮),按住該鍵敲入字母鍵,將輸入小寫字母;若當前為小寫狀態,按住該鍵輸入大寫字母。

Esc

1中斷、取消操作:比如說,你單擊了某個菜單或調出了某個對話框,又不想做這個操作了,可以按一下該鍵取消。

2在DOS中,可以用於退出某個軟件

數字鎖定鍵:Num Lock

該鍵位於數字鍵盤區的左上方,上方還有一個對應的指示燈,按一下,燈亮,再按一下,燈熄。

燈亮時—輸入數字

燈熄時—啟用功能鍵,即「Del(刪除)、Ins(插入/改寫)、Home」等等。

Tab鍵

該功能鍵主要有兩大作用:

1、在文字編輯軟件中,按一下該鍵,可以將光標移到下一製表位

2、在對話框中,按該鍵,可將光標在各選項間循環切換。

打印屏幕(抓圖):Print Screen

1 打印整個屏幕

若要將屏幕上顯示的整個畫面抓下來,可按以下方法操作:

第一步:準備好要抓的畫面

第二步:按按「Print Screen」鍵

第三步:切換到Word文檔中,並將插入點移到要粘貼的位置

第四步:按Ctrl+V粘貼

2打印活動窗口(當前正在操作的窗口)

第一步:準備好要抓的畫面

第二步:按按「Print Screen」鍵

第三步:切換到Word文檔中,並將插入點移到要粘貼的位置

第四步:按Alt+V粘貼

所有的鍵盤都至少有12個功能鍵,通常被稱為F鍵,其位置一般是在鍵盤頂部,從F1到F12。不過你知道所有

這些鍵的作用嗎?你知道這些鍵怎樣為你節省時間嗎?

■F1:如果你處在一個選定的程序中而需要幫助,那麼請按下F1。如果現在不是處在任何程序中,而是處在資 源管理器或桌面,那麼按下F1就會出現Windows的幫助程序。如果你正在對某個程序進行操作,而想得到 Windows幫助,則需要按下Win+F1。按下Shift+F1,會出現"What's This?"的幫助信息。

■F2:如果在資源管理器中選定了一個文件或文件夾,按下F2則會對這個選定的文件或文件夾重命名。

■F3:在資源管理器或桌面上按下F3,則會出現「搜索文件」的窗口,因此如果想對某個文件夾中的文件進行 搜索,那麼直接按下F3鍵就能快速打開搜索窗口,並且搜索範圍已經默認設置為該文件夾。同樣,在 Windows Media Player中按下它,會出現「通過搜索計算機添加到媒體庫」的窗口。

■F4:這個鍵用來打開IE中的地址欄列表,要關閉IE窗口,可以用Alt+F4組合鍵。

■F5:用來刷新IE或資源管理器中當前所在窗口的內容。

■F6:可以快速在資源管理器及IE中定位到地址欄。

■F7:在Windows中沒有任何作用。不過在DOS窗口中,它是有作用的,試試看吧!

■F8:在啟動電腦時,可以用它來顯示啟動菜單。有些電腦還可以在電腦啟動最初按下這個鍵來快速調出啟動 設置菜單,從中可以快速選擇是軟盤啟動,還是光盤啟動,或者直接用硬盤啟動,不必費事進入BIOS進行啟 動順序的修改。另外,還可以在安裝Windows時接受微軟的安裝協議。

■F9:在Windows中同樣沒有任何作用。但在Windows Media Player中可以用來快速降低音量。

■F10:用來激活Windows或程序中的菜單,按下Shift+F10會出現右鍵快捷菜單。和鍵盤中Application鍵的 作用是相同的。而在Windows Media Player中,它的功能是提高音量。

■F11:可以使當前的資源管理器或IE變為全屏顯示。

■F12:在Windows中同樣沒有任何作用。但在Word中,按下它會快速彈出另存為文件的窗口。

零成本打造多媒體鍵盤

總結下來,我們會發現F1、F4、F6、F7、F8、F11、F12這七個鍵在Windows中用處不大,那麼為什麼不把它

們的職能換一換,擔負起更重要的工作呢?比如你的鍵盤是普通鍵盤,對別人的多媒體鍵盤羨慕已久,那麼用FKeys這款免費小軟件(下載地址:http://www.max2k.com/download.php?id=11)就可以對F鍵進行全面 改造,讓普通鍵盤搖身變為多媒體鍵盤。這裡為大家提供一個設置的方案(如果操作系統是Windows XP, F12鍵無法進行設置),設置完成後單擊「Save&Minimize」按鈕使其縮小至系統托盤,同時將FKeys的快捷 方式複製到「開始→程序→啟動」,使其隨Windows一同啟動。

功能鍵

功能 命令

F1 打開計算器 calc

F4 給系統欄目小編寫信

F6 播放自己喜歡的MP3 C:\1.m3u(根據實際情況添寫)

F7 打開記事本 notepad

F8 啟動OE C:\Program Files\Outlook Express\MSIMN.EXE

F11 啟動Word C:\Program Files\Microsoft Office\OFFICE11\WINWORD.EXE

Java語言的中文問題解決之道

Java 編程語言成長於網絡世界,這就要求 Java 對多國字符有很好的支持。 Java 編程語言適應了計算的網絡化的需求,為它能夠在網絡世界迅速成長奠定了堅實的基礎。 Java 的締造者 (Java Soft) 已經考慮到 Java 編程語言對多國字符的支持,只是現在的解決方案有很多缺陷在裡面,需要我們付諸一些補償性的措施。而世界標準化組織也在努力把人類所有的文字統一在一種編碼之中。當然,在這種方案未被採用之前,還是希望 Java Soft 能夠嚴格地測試它的產品,為用戶帶來更多的方便。附一個用於從數據庫和網絡中取出中文亂碼的處理函數,入參是有問題的字符串,出參是問題已經解決了的字符串。

Code:
String parseChinese(String in)
{
String s = null;
byte temp [];
if (in == null)
{
System.out.println("Warn:Chinese null founded!");
return new String("");
}
try
{
temp=in.getBytes("iso-8859-1");
temp=in.getBytes("iso-8859-1");
s = new String(temp);
}
{
System.out.println("Warn:Chinese null founded!");
return new String("");
}
try
{
temp=in.getBytes("iso-8859-1");
s = new String(temp);
}
catch(UnsupportedEncodingException e)
{
System.out.println (e.toString());
}
return s;
}

Jdk1.5增強的for循環

JDK1.5 對 for 循環的增強主要針對集合的迭代。遍歷集合中的元素,新的 for 循環將不再需要循環變量。當然,類似的規則也適用於數組。

語法規則:for (Type element : Expression) {…}

Type variable 為 Expression 中元素的類型及當前元素

Expression 必須是 java.lang.Iterable 接口的一個實例,或者一個數組

下面的例子,分別演示如何用迭代器的 for 循環和數組的 for 循環:

Code:
public void newFor(Collection c) {
for(String element : c) {
System.out.println(element);
}
}


Code:
public int sumArray(int array[]) {
int sum = 0;
for(int i : array) {
sum += i;
}
return sum;
}

JAVA讀取XML文件詳解

1.有很多時候我們需要將相關動態的信息保存到XML文件中去,那麼我們就可以動態輸入相關信息。特別是針對數據庫方面的操作的時候就非常地靈活。那我現在假如項目中的操作數據庫的包為model裡面存放了我們的XML文件db.xml現在來看看如何解析出來相關的數據來調用。

第一個類:
Code:
=============================================================================
package model;
import org.xml.sax.Attributes;
import org.xml.sax.helpers.DefaultHandler;
import org.xml.sax.SAXException;
import java.util.Properties;
//使用DefaultHandler的好處 是 不必陳列出所有方法,
public class ConfigParser extends DefaultHandler {
////定義一個Properties 用來存放 dbhost dbuser dbpassword的值
private Properties props;
private String currentSet;
private String currentName;
private StringBuffer currentValue = new StringBuffer();
//構建器初始化props
public ConfigParser() {
this.props = new Properties();
}
public Properties getProps() {
return this.props;
}
//定義開始解析元素的方法. 這裡是將中的名稱xxx提取出來.
public void startElement(String uri, String localName, String qName, Attributes attributes)throws SAXException {
currentValue.delete(0, currentValue.length());
this.currentName =qName;
}
//這裡是將之間的值加入到currentValue
public void characters(char[] ch, int start, int length) throws SAXException {
currentValue.append(ch, start, length);
}
//在遇到
結束後,將之前的名稱和值一一對應保存在props中
public void endElement(String uri, String localName, String qName) throws SAXException {
props.put(qName.toLowerCase(), currentValue.toString().trim());
}
}
=============================================================================
可以直接拷貝過來用了。

第二個類:
Code:

=============================================================================
package model;
import java.util.Properties;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.parsers.SAXParser;
import javax.xml.parsers.SAXParserFactory;
import org.xml.sax.SAXException;
import java.net.URL;
public class ParseXML{
//定義一個Properties 用來存放 dbhost dbuser dbpassword的值
private Properties props;
//這裡的props
public Properties getProps() {
return this.props;
}
public void parse(String filename) {
//將我們的解析器對像化
ConfigParser handler = new ConfigParser();
//獲取SAX工廠對像
SAXParserFactory factory = SAXParserFactory.newInstance();
factory.setNamespaceAware(false);
factory.setValidating(false);
//獲取SAX解析
SAXParser parser=null;
try {
parser = factory.newSAXParser();
} catch (Exception e1) {
e1.printStackTrace();
}
URL confURL = null;
//得到配置文件myenv.xml所在目錄. tomcat中是在WEB-INF/classes
//下例中BeansConstants是用來存放xml文件中配置信息的類,可以自己代替或定義
try{
confURL = ParseXML.class.getClassLoader().getResource(filename);
//只需要將我們所需要的XML文件名字輸入進去就可以了!
}catch(Exception e){
System.out.print(e.toString());
}
try
{ //將解析器和解析對像myenv.xml聯繫起來,開始解析
parser.parse(confURL.toString(), handler);
//獲取解析成功後的屬性 以後 我們其他應用程序只要調用本程序的props就可以提取出屬性名稱和值了
props = handler.getProps();
}catch(Exception e){
System.out.println(e.toString());
}finally{
factory=null;
parser=null;
handler=null;
}
}
}

=============================================================================
下面是我們所需要調用的XML文件內容:
Code:
=============================================================================


localhost
tianya_speed_test
root
321


=============================================================================
現在需要將其中的相關內容讀取出來。包括數據庫主機地址,數據庫名字,用戶名及密碼好了,現在準備工作已經都做完了。現在就可以來想想如何來調用我們剛才解析出來的內容嘍:
Code:
=============================================================================
public void initVariable(){
ParseXML test = new ParseXML();
try{
test.parse("model/db.xml");//表示實際的XML文件位置,如果沒有找到就報空指針異常!
}catch(Exception e){
System.out.print(e.toString());
}
Properties pro = test.getProps();//獲取到PRO對像然後用它去調用相關的屬性!
dbServer = pro.getProperty("dbhost");//相當於Python中的字典類型。
dbName = pro.getProperty("dbname");
dbUser = pro.getProperty("dbuser");
dbPwd = pro.getProperty("dbpassword");
}
tcp.validnode_checking=yes
#允許訪問的ip
tcp.invited_nodes=(ip1,ip2,……)
#不允許訪問的ip
tcp.excluded_nodes=(ip1,ip2,……)
=============================================================================
好了,現在我們就只需要手工來修改XML就可以了。

以後在做項目過程中如果需要用XML來配置數據庫或其他的相關信息就可以了用這個方法哦。比較簡單而且實用!
=============================================================================