bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

字符串解析為java代碼 字符串的解析

java字符串怎么轉換為代碼

方法是有的,但不全實際.

為企業提供成都網站制作、成都做網站、網站優化、網絡營銷推廣、競價托管、品牌運營等營銷獲客服務。成都創新互聯公司擁有網絡營銷運營團隊,以豐富的互聯網營銷經驗助力企業精準獲客,真正落地解決中小企業營銷獲客難題,做到“讓獲客更簡單”。自創立至今,成功用技術實力解決了企業“網站建設、網絡品牌塑造、網絡營銷”三大難題,同時降低了營銷成本,提高了有效客戶轉化率,獲得了眾多企業客戶的高度認可!

首先,你要理解,JAVA代碼的運行是要被編譯成字節碼codebyte后才能被執行的,以你問題中的意思,那個字符串應該是在怎么代碼被編譯后項目在運行時,再傳入的參數,這時,要想把傳入參數的字符串當成JAVA代碼來運行,只有一種辦法,就是把傳進來的字符串轉換成字節碼,并且,要虛擬加一個方法體出來.這也不是不可行,可用的技術有asm.cglib等字節碼技術.但你想,對于你的問題.這樣有實際的意義嗎

你還不如,把system.out.print重定義成新的外調方法調動來的清晰

java字符串如何解析成能運行的java代碼?

java字符串如何解析成運行的java代碼

有些情況下,不得不動態運行Java代碼,以便提供更加靈活的方式,以下代碼可參考(在JDK 1.5+平臺上運行通過):

public static void main(String[] args) {

int i = 10;

String code = "System.out.println(\"Hello World!\"+(13+2*5/3));";

code += "for(int i=0;i" + i + ";i++){";

code += " System.out.println(Math.pow(i,2));";

code += "}";

try {

run(code);

} catch (Exception e) {

e.printStackTrace();

}

}

private synchronized static File compile(String code) throws Exception {

File file = File.createTempFile("JavaRuntime", ".java", new File(System.getProperty("user.dir")));

file.deleteOnExit();

// 獲得類名

String classname = getBaseFileName(file);

// 將代碼輸出到文件

PrintWriter out = new PrintWriter(new FileOutputStream(file));

out.println(getClassCode(code, classname));

out.close();

// 編譯生成的java文件

String[] cpargs = new String[] { "-d",

System.getProperty("user.dir") + "\\WebRoot\\WEB-INF\\classes",

file.getName() };

int status = Main點抗 pile(cpargs);

if (status != 0) {

throw new Exception("語法錯誤!");

}

return file;

}

private static synchronized void run(String code) throws Exception {

String classname = getBaseFileName(compile(code));

new File(System.getProperty("user.dir")

+ "\\WebRoot\\WEB-INF\\classes\\" + classname + ".class")

.deleteOnExit();

try {

Class cls = Class.forName(classname);

Method main = cls.getMethod("method", null);

main.invoke(cls, null);

} catch (Exception se) {

se.printStackTrace();

}

}

private static String getClassCode(String code, String className) {

StringBuffer text = new StringBuffer();

text.append("public class " + className + "{\n");

text.append(" public static void method(){\n");

text.append(" " + code + "\n");

text.append(" }\n");

text.append("}");

return text.toString();

}

private static String getBaseFileName(File file) {

String fileName = file.getName();

int index = fileName.indexOf(".");

String result = "";

if (index != -1) {

result = fileName.substring(0, index);

} else {

result = fileName;

}

return result;

}

怎樣將字符串轉換為可執行的java語句

如,String

aa

=

new

String(

"aa

")

這條語句存儲在數據庫的表中。

如果你的code變量的內容格式都是這樣固定的

可以先解析字符串

得到類、方法和參數的信息

然后可使用反射動態調用該方法

~如果你認可我的回答,請及時點擊【采納為滿意回答】按鈕

~~手機提問的朋友在客戶端右上角評價點【滿意】即可。

~你的采納是我前進的動力

~~O(∩_∩)O,記得好評和采納,互相幫助,謝謝。

網頁標題:字符串解析為java代碼 字符串的解析
路徑分享:http://vcdvsql.cn/article0/ddegooo.html

成都網站建設公司_創新互聯,為您提供外貿建站網站制作商城網站品牌網站設計定制開發網站營銷

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都做網站