當前位置:首頁 » 編程語言 » javac調用

javac調用

發布時間: 2023-02-26 12:07:53

java如何調用javac命令

配置環境變數後才可以
我的電腦點右鍵,選擇「屬性」,選擇「高級」標簽,進入環境變數設置,分別設置如下三個環境變數:
設置JAVA_HOME:
一是為了方便引用,比如,JDK安裝在C:\jdk1.6.0目錄里,則設置JAVA_HOME為該目錄路徑, 那麼以後要使用這個路徑的時候, 只需輸入%JAVA_HOME%即可, 避免每次引用都輸入很長的路徑串;
二則是歸一原則, 當JDK路徑改變的時候, 僅需更改JAVA_HOME的變數值即可, 否則,就要更改任何用絕對路徑引用JDK目錄的文檔, 要是萬一沒有改全, 某個程序找不到JDK, 後果是可想而知的----系統崩潰!
三則是第三方軟體會引用約定好的JAVA_HOME變數, 不然, 你不能正常使用該軟體.
在系統環境變數那一欄中點->新建JAVA_HOME (JAVA_HOME指向的是JDK的安裝路徑)
變數名: JAVA_HOME
變數值: C:\jdk1.6.0
(1)設置好path變數,使得我們能夠在系統中的任何地方運行java應用程序,比如javac、java、javah等等,這就要找到我們安裝JDK的目錄,
假設我們的JDK安裝在C:\jdk1.6.0目錄下,那麼在C: \jdk1.6.0\bin目錄下就是我們常用的java應用程序,我們就需要把C:\jdk1.6.0\bin這個目錄加到path環境變數裡面。
在系統變數里找到path變數,選擇->編輯;(裡面已經有很多的變數值,是在變數值的最前面加上C:\jdk1.6.0\bin; 如果沒有 就新建一個 但是 一般都會有的)
變數名: path
變數值: C:\jdk1.6.0\bin;
或 %JAVA_HOME%\bin;
(2)classpath環境變數,是當我們在開發java程序時需要引用別人寫好的類時,要讓java解釋器知道到哪裡去找這個類。通常,sun為我們提供了一些額外的豐富的類包,一個是dt.jar,一個是tools.jar,這兩個jar包都位於C:\jdk1.6.0\lib目錄下,所以通常我們都會把這兩個jar包加到我們的classpath環境變數中set classpath=.;C:\jdk1.6.0\lib\tools.jar;C:\jdk1.6.0\lib\dt.jar。
在系統環境變數那一欄中點->新建classpath
變數名: classpath
變數值: .;C:\jdk1.6.0\lib\tools.jar;C:\jdk1.6.0\lib\dt.jar;
或 .;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\lib\dt.jar;
(注意,CLASSPATH 中最前面是有個 「.」的,表示當前目錄,這樣當我們運行java AClass的時候,系統就會先在當前目錄尋找AClass文件了。)

❷ Linux環境下java調用C

你的JNI 寫錯了吧

java里的 char和 C的char完全不是一回事

java里你要寫 stringjava_encryptpswd(string Password, string EncryptedKey );

生成的 C頭文件,應該是 jstring java_encryptpswd(JEnvi* pEnvi,jstring Password,jstring EncryptedKey)

我手寫的,沒查資料,大概是這樣。。

然後第一個參數是當前虛擬機事例,裡面有很多可用的函數

後面兩個是java里字元串結構,在C裡面的表示法, 其實它就是指針而已。

然後你可以用pEnvi里的函數,將java的string,轉化成 c的string。

然後調用 C的頭文件的函數,得到結果,在組裝成java的字元串。

比如例子:

我要用C來實現 java的字元串定位。

No.1 定義java的本地介面
public native String NAConvert(String arg1,String arg2);

No.2 生成頭文件
JNIEXPORT jstring JNICALL Java_com_test_mainandroid_MainAndroidNative_NAConvert
(JNIEnv *, jobject, jstring, jstring);

No.3 自己創建一個實現文件,實現上面函數
jstring Java_com_test_mainandroid_MainAndroidNative_NAConvert
(JNIEnv* env, jobject obj, jstring arg1, jstring arg2)
{
jsize len = env->GetStringLength(arg1);
jchar* pBuf = new jchar[len+1];
env->GetStringRegion(arg1,0,len,pBuf);

jclass m = env->FindClass("java/lang/String");

jmethodID mid = env->GetMethodID(m,"charAt","(I)C");

jchar c = env->CallCharMethod(arg1,mid,1);

return arg1 ;
}

第一個是虛擬機事例指針,第二個參數是介面方法所在對象的 this。
第三個及以後才是你的介面的參數。
java里傳入的所有對象參數,在C裡面都是句柄。必須要用第一個參數env才能解析其中含義。

❸ 如何使用javac命令編譯java源程序

1.建文本文檔,輸入自己的java程序。

熱點內容
pos介面php 發布:2024-04-27 18:05:06 瀏覽:996
微信限額上傳 發布:2024-04-27 17:55:18 瀏覽:778
支持編譯成機器碼的語言 發布:2024-04-27 17:31:59 瀏覽:746
串口伺服器ip限制 發布:2024-04-27 17:30:20 瀏覽:502
sql編程入門經典 發布:2024-04-27 17:28:52 瀏覽:283
紅木卧室有哪些配置 發布:2024-04-27 17:09:47 瀏覽:856
中心機編程 發布:2024-04-27 17:00:11 瀏覽:117
lms濾波演算法 發布:2024-04-27 16:55:37 瀏覽:444
蘋果電腦遠程桌面連接伺服器 發布:2024-04-27 16:53:08 瀏覽:234
為什麼安卓手機沒有回響 發布:2024-04-27 16:53:08 瀏覽:375