Ⅰ java代碼生成器能生成c語言代碼嗎用什麼方法能實現呢
按照我的理解,不能,我也學習過java,沒聽過這個功能。高級語言最終都要編譯成機器語言,也就是01串,為什麼會有這么多的計算機語音,就是因為各自在各自的領域比較方便。實現同一個功能,不管什麼語言都是可以的,只是難易程度的問題,因為任何語言都會有順序、選擇、循環這三種結構,如果可以的話,除非有一種這樣的程序,可以把java編譯的程序,也就是機器碼反編譯為C,這個我至今也沒聽說過,也不知道有什麼用。就我的理解來說,反編譯是非常難的一件事,而且是反編譯為原來的語言,比如微軟Windows源代碼,絕對的商業機密,應該有很多人嘗試過,你能拿到Windows的光碟(算是機器碼吧),但是你並不能提供Windows的源代碼,如果有人能提供的話,微軟就會倒閉,反編譯為其他語言,估計更是難上加難。
Ⅱ 用Javac怎麼單獨編譯一個java文件
對單個*java文件進行編譯的方法是利用javac工具。
1. 編寫Hellworld.java源碼
新建一個Hellworld的java文件,代碼如下:
package com.csdn.test;
public class Say {
/**
* @param args
*/
public static void main(String[] args) {
System.out.println("hello,world!");
}
}
2、編譯Hellworld.java源碼
執行javac命令編譯源代碼,下面得藍色部分說明javac執行成功了,並在當前目錄下生成了Say.class文件,如下:
Microsoft Windows [版本 6.1.7600]
版權所有 (c) 2009 Microsoft Corporation。保留所有權利。
C:/Users/Administrator>d:
D:/>cd temp
D:/temp>javac Hellworld.java
Ⅲ 怎麼樣在Java程序中調用c/c++編譯器進行c/c++的編譯
可以調用的,java有一種技術叫JNI,就是為了調用C/C++,至於例子嘛是這樣的: 01. public class testdll 02. { 03. static 04. { 05. System.loadLibrary("goodluck"); 06. } 07. public native static int get(); 08. 09. public native static void set(int i); 10. public static void main(String args) 11. { 12. testdll test = new testdll(); 13. test.set(10); 14. System.out.println(test.get()); 15. } 16. 17. } 用javac testdll.java編譯它,會生成testdll.class。 再用javah testdll,則會在當前目錄下生成testdll.h文件,這個文件需要被C/C++程序調用來生成所需的庫文件。 二、C/C++中所需要做的工作 對於已生成的.h頭文件,C/C++所需要做的,就是把它的各個方法具體的實現。然後編譯連接成庫文件即可。再把庫文件拷貝到JAVA程序的路徑下面,就可以用JAVA調用C/C++所實現的功能了。 好,下面我們用testdll.cpp文件具體實現這兩個函數: 01. #include "testdll.h" 02. int i = 0; 03. JNIEXPORT jint JNICALL Java_testdll_get (JNIEnv *, jclass) 04. { 05. return i; 06. } 07. JNIEXPORT void JNICALL Java_testdll_set (JNIEnv *, jclass, jint j) 08. { 09. i = j; 10. } 編譯連接成庫文件,本例是在WINDOWS下做的,生成的是DLL文件。並且名稱要與JAVA中需要調用的一致,這里就是goodluck.dll http://ask.wangmeng.cn/question/88