我試了一下,jbuilder生成的exe文件,在沒有裝jre的機器上不能運行,于是我就在該exe文件的同一位置提供一個jre目錄,可是該exe文件不會去自動找這個jre,應該怎樣做才能使exe文件找到這個jre,并運行起來呢?
10年積累的網(wǎng)站設計、成都網(wǎng)站制作經(jīng)驗,可以快速應對客戶對網(wǎng)站的新想法和需求。提供各種問題對應的解決方案。讓選擇我們的客戶得到更好、更有力的網(wǎng)絡服務。我雖然不認識你,你也不認識我。但先做網(wǎng)站設計后付款的網(wǎng)站建設流程,更有岳普湖免費網(wǎng)站建設讓你可以放心的選擇與我們合作。
先寫一個bak,檢查有沒有jre,有的話就直接運行你的程序,沒有的話,先安裝再執(zhí)行。
---------------------------------------------------------------
jbuilder有一個隱藏的技巧可以讓你從可執(zhí)行文件來啟動java程序,(不出現(xiàn)console窗口我沒有做到)。需要jbuilderx的bin目錄下的這些文件:
jbuilder.exe
jbuilderw.exe (可選)
jbuilder.config
jdk.config
“jbuilder.exe”是一個通用的可執(zhí)行外殼文件,用以啟動java程序,“jbuilderw.exe”好像是javaw.exe一樣,它把“jbuilder.exe”包裝起來,但是運行時候不顯示那個console的窗口。使用這些文件的關(guān)鍵是文件名?!癹builder.exe”查找一個文件叫“jbuilder.config”的配置文件,里面包含了運行java程序的必須信息。同樣的“jbuilderw.exe”查找“jbuilder.exe”來啟動不帶console窗口的java程序。如果把jbuilder.exe重命名為“foo.exe”,那“foo.exe”將去尋找“foo.config”配置文件,同樣“jbuilderw.exe”被重命名為“foow.exe”,它會去尋找“foo.exe”文件。
說到這里,聰明的讀者應該猜到怎樣利用jbuilder.exe來啟動應用程序了。只要把jbuilder.exe,jbuilerw.exe,jbuilder.config改名成相應的文件名,在jbuilder.config里面指定主類和類路徑,就能夠通過執(zhí)行jbuilder.exe(或者被改名后的exe文件)來啟動java應用程序了。
在\jbuilderx\bin\目錄下,后把jbuilder.exe,jbuilder.config,jdk.config四個文件拷貝到某目錄下,然后打開jbuilder.config文件,作相應的修改:
在jbuilder.config里面找到下面兩行
# start jbuilder using the its main class
mainclass com.borland.jbuilder.jbuilder ----修改主類為自己希望的類
config里面可以識別的命令可以在jbuilder/bin目錄下的config_readme.txt里面找到詳細說明。
然后修改jdk.config里面的javapath相對的路徑,例如原來是
javapath ../jdk1.3/bin/java ----修改主類為自己打包的jre路徑(可以使相對路徑,如./jre)
最后將jbuilder.exe,jbuilder.config修改成所需要的文件名,例如foo.exe和foo.config文件。
下面的小技巧可能更有趣,將jar文件打包進入exe文件!
將jar包附加到jbuilder.exe后面去,執(zhí)行過程:
copy /b ..\jbuilder.exe+hello.jar foo.exe
一個含jar包的exe文件得到了!
這個過程的大致原理是:exe文件的重要信息都在文件頭部,所以把亂七八糟的東西放exe文件尾部是不要緊的;而jar/zip文件的重要信息是在文件尾部的,這樣它們兩不相干,能夠容易的被執(zhí)行。
java中數(shù)據(jù)類型的強制轉(zhuǎn)換是通過強制轉(zhuǎn)換語句完成的,強制轉(zhuǎn)換語句的格式為“目標數(shù)據(jù)類型 ?變量 = (目標數(shù)據(jù)類型) 數(shù)據(jù);”。下面給出例子:
1、定義兩個字節(jié)數(shù)據(jù)類型a、b、c,分別賦予1和2和a+b的值,進行加法運算的式子a+b=3,得出的結(jié)果“3”將會被編譯環(huán)境判定為整形數(shù)據(jù),把這個整形數(shù)據(jù)賦值給c,系統(tǒng)將會報錯,這樣就需要用到格式為“目標數(shù)據(jù)類型 ?變量 = (目標數(shù)據(jù)類型) 數(shù)據(jù);”的強制轉(zhuǎn)換語句。
2、根據(jù)強制轉(zhuǎn)換語句的格式,易得“byte c = (byte)(a+b);”;
3、這樣就把整形數(shù)據(jù)的“3”賦值給字節(jié)數(shù)據(jù)類型的c了,其中完成數(shù)據(jù)的強制類型轉(zhuǎn)換。
擴展資料:
基本類型 轉(zhuǎn)換原則:
1、類型轉(zhuǎn)換主要在在?賦值、方法調(diào)用、算術(shù)運算?三種情況下發(fā)生。
a、賦值和方法調(diào)用 轉(zhuǎn)換規(guī)則:從低位類型到高位類型自動轉(zhuǎn)換;從高位類型到低位類型需要強制類型轉(zhuǎn)換:
(1)布爾型和其它基本數(shù)據(jù)類型之間不能相互轉(zhuǎn)換;
(2)byte型可以轉(zhuǎn)換為short、int、、long、float和double;
(3)short可轉(zhuǎn)換為int、long、float和double;
(4)char可轉(zhuǎn)換為int、long、float和double;
(5)int可轉(zhuǎn)換為long、float和double;
(6)long可轉(zhuǎn)換為float和double;
(7)float可轉(zhuǎn)換為double;
b、算術(shù)運算 中的類型轉(zhuǎn)換:
1、基本就是先轉(zhuǎn)換為高位數(shù)據(jù)類型,再參加運算,結(jié)果也是最高位的數(shù)據(jù)類型;
2、byte short char運算會轉(zhuǎn)換為Int;
(1)如操作數(shù)之一為double,則另一個操作數(shù)先被轉(zhuǎn)化為double,再參與算術(shù)運算。
(2)如兩操作數(shù)均不為double,當操作數(shù)之一為float,則另一操作數(shù)先被轉(zhuǎn)換為float,再參與運算。
(3)如兩操作數(shù)均不為double或float,當操作數(shù)之一為long,、則另一操作數(shù)先被轉(zhuǎn)換為long,再參與算術(shù)運算。
(4)如兩操作數(shù)均不為double、float或long,則兩操作數(shù)先被轉(zhuǎn)換為int,再參與運算。
特殊:
(1)如采用+=、*=等縮略形式的運算符,系統(tǒng)會自動強制將運算結(jié)果轉(zhuǎn)換為目標變量的類型。
(2) ?當運算符為自動遞增運算符(++)或自動遞減運算符(--)時,如果操作數(shù)為byte,short或char類型不發(fā)生改變;
參考資料:百度百科 - java關(guān)鍵字
安裝JDK 有很多版本,
這要看你的原來的.class是什么版本的,所以你安裝的版本必須比原來的高
安裝之后 假設安裝目錄為c:\jdk1.6
則c:\jdk1.6\bin目錄下有個程序javac.exe,用這個程序來對.java文件進行編譯
你將"c:\jdk1.6\bin"這一串字母復制起,然后我的電腦-》屬性-》高級-》環(huán)境變量那里 上頭下頭都可以,有一個項是path
你點修改或者編輯 然后里頭已經(jīng)有很多了,把光標移動到最后,
粘貼上去,與前頭的以分號隔開,最后加分號。保存(不要把原來的清空了哦)
配置完成了
然后編譯的方法
假設C:\myjava\下有個i.java文件
那么你進入控制臺,cd myjava 進入這個目錄
敲命令javac i.java回車
如果沒有任何錯誤提示表示成功 你再去看這個目錄就會有i.class了
javac是Java編譯器,負責將Java源代碼轉(zhuǎn)換成字節(jié)碼文件。
javac 可以隱式編譯一些沒有在命令行中提及的源文件。用 -verbose 選項可跟蹤自動編譯。當編譯源文件時,編譯器常常需要它還沒有識別出的類型的有關(guān)信息。
javac的特點
javac具有簡單性、面向?qū)ο?、分布性、解釋性、可靠、安全、平臺無關(guān)、可移植性、高性能、多線程、動態(tài)性等特點。提供了異常處理機制,程序員可以把錯誤代碼放在一起,這樣可以簡化錯誤處理任務,便于恢復。不支持指針,杜絕了內(nèi)存的非法訪問。
如果表達小于2^31-1的正數(shù)代碼如下:
public void binaryToDecimal(int n){
int t = 0;? //用來記錄位數(shù)
int bin = 0; //用來記錄最后的二進制數(shù)
int r = 0;? //用來存儲余數(shù)
while(n != 0){
r = n % 2;
n = n / 2;
bin += r * Math().pow(10,t);
t++;
}
System.out.println(bin);
}
使用字符串的拼接(+)來實現(xiàn)大于2^31-1的數(shù),代碼如下:
public void binaryToDecimal(int n){
String str = "";
while(n!=0){
str = n%2+str;
n = n/2;
}
System.out.println(str);
}
可以右移后再與0x01進行運算??得到第一位的數(shù)字判斷判斷它的第幾位上是0,第幾位上是1,代碼如下:
class ByteMove
{
public static void main(String[] args)
{
int i = 7;
move(i);
}
static void move(int num){
for(int i= 0;i6;i++){
System.out.println("第"+(i+1)+"位:" + (num i 0x01));
}
}
}
擴展資料:
在windows下編譯java文件、執(zhí)行:
1、先創(chuàng)建一個txt,更改為test.java。
2、編寫代碼,為輸出為holloword。
3、找到cmd,并進行打開cmd。
4、編譯java文件,輸入命令為javac test.java。
5、如果沒有報錯,查看當前目錄下是否有class文件產(chǎn)生。
6、執(zhí)行class文件,在命令輸入java test,輸出為holloword。
主類中必須有public static void main(String [] args)這個函數(shù),這中程序運行的入口,運行這個就行了
比如,你在一個文件夾下有很多JAVA文件
編譯 :javac *.java
就自動編譯了
如果主類名是 test.java
運行:java test
運行的是編譯后的test.clss 這個類,而不是test.java這個文件