老熟女激烈的高潮_日韩一级黄色录像_亚洲1区2区3区视频_精品少妇一区二区三区在线播放_国产欧美日产久久_午夜福利精品导航凹凸

重慶分公司,新征程啟航

為企業提供網站建設、域名注冊、服務器等服務

文件修改器java源代碼,修改源代碼的軟件

什么是java源代碼 怎么查看

你說的java源代碼是指編譯成的class文件前的java文件。

網站建設哪家好,找創新互聯建站!專注于網頁設計、網站建設、微信開發、微信小程序定制開發、集團企業網站建設等服務項目。為回饋新老客戶創新互聯還提供了依安免費建站歡迎大家使用!

當我們運行.java文件時,它會被系統編譯成.class文件,例如Test.java編譯之后就是Test.class,

源文件就是指Test.java文件,

一般部署項目時,有.class文件就可以發布運行了,但是如果想修改這個系統,.class是不能修改的,要有.java文件才能修改

也可以上網去下反編譯軟件,就是能把.class文件大部分還原成.java文件的工具,但不是100%還原,而且如果不是正版的,小心有毒啊,什么的。

java源代碼編輯器 設計用于編寫Java源代碼的編輯器,基本要求:可以完成源程序的文件打開,編輯和文件保存

一. 高亮的內容:

需要高亮的內容有:

1. 關鍵字, 如 public, int, true 等.

2. 運算符, 如 +, -, *, /等

3. 數字

4. 高亮字符串, 如 "example of string"

5. 高亮單行注釋

6. 高亮多行注釋

二. 實現高亮的核心方法:

StyledDocument.setCharacterAttributes(int offset, int length, AttributeSet s, boolean replace)

三. 文本編輯器選擇.

Java中提供的多行文本編輯器有: JTextComponent, JTextArea, JTextPane, JEditorPane等, 都可以使用. 但是因為語法著色中文本要使用多種風格的樣式, 所以這些文本編輯器的document要使用StyledDocument.

JTextArea使用的是PlainDocument, 此document不能進行多種格式的著色.

JTextPane, JEditorPane使用的是StyledDocument, 默認就可以使用.

為了實現語法著色, 可以繼承自DefaultStyledDocument, 設置其為這些文本編輯器的documet, 或者也可以直接使用JTextPane, JEditorPane來做. 為了方便, 這里就直接使用JTextPane了.

四. 何時進行著色.

當文本編輯器中有字符被插入或者刪除時, 文本的內容就發生了變化, 這時檢查, 進行著色.

為了監視到文本的內容發生了變化, 要給document添加一個DocumentListener監聽器, 在他的removeUpdate和insertUpdate中進行著色處理.

而changedUpdate方法在文本的屬性例如前景色, 背景色, 字體等風格改變時才會被調用.

@Override

public void changedUpdate(DocumentEvent e) {

}

@Override

public void insertUpdate(DocumentEvent e) {

try {

colouring((StyledDocument) e.getDocument(), e.getOffset(), e.getLength());

} catch (BadLocationException e1) {

e1.printStackTrace();

}

}

@Override

public void removeUpdate(DocumentEvent e) {

try {

// 因為刪除后光標緊接著影響的單詞兩邊, 所以長度就不需要了

colouring((StyledDocument) e.getDocument(), e.getOffset(), 0);

} catch (BadLocationException e1) {

e1.printStackTrace();

}

}

五. 著色范圍:

pos: 指變化前光標的位置.

len: 指變化的字符數.

例如有關鍵字public, int

單詞"publicint", 在"public"和"int"中插入一個空格后變成"public int", 一個單詞變成了兩個, 這時對"public" 和 "int"進行著色.

著色范圍是public中p的位置和int中t的位置加1, 即是pos前面單詞開始的下標和pos+len開始單詞結束的下標. 所以上例中要著色的范圍是"public int".

提供了方法indexOfWordStart來取得pos前單詞開始的下標, 方法indexOfWordEnd來取得pos后單詞結束的下標.

public int indexOfWordStart(Document doc, int pos) throws BadLocationException {

// 從pos開始向前找到第一個非單詞字符.

for (; pos 0 isWordCharacter(doc, pos - 1); --pos);

return pos;

}

public int indexOfWordEnd(Document doc, int pos) throws BadLocationException {

// 從pos開始向前找到第一個非單詞字符.

for (; isWordCharacter(doc, pos); ++pos);

return pos;

}

一個字符是單詞的有效字符: 是字母, 數字, 下劃線.

public boolean isWordCharacter(Document doc, int pos) throws BadLocationException {

char ch = getCharAt(doc, pos); // 取得在文檔中pos位置處的字符

if (Character.isLetter(ch) || Character.isDigit(ch) || ch == '_') { return true; }

return false;

}

所以著色的范圍是[start, end] :

int start = indexOfWordStart(doc, pos);

int end = indexOfWordEnd(doc, pos + len);

六. 關鍵字著色.

從著色范圍的開始下標起進行判斷, 如果是以字母開或者下劃線開頭, 則說明是單詞, 那么先取得這個單詞, 如果這個單詞是關鍵字, 就進行關鍵字著色, 如果不是, 就進行普通的著色. 著色完這個單詞后, 繼續后面的著色處理. 已經著色過的字符, 就不再進行著色了.

public void colouring(StyledDocument doc, int pos, int len) throws BadLocationException {

// 取得插入或者刪除后影響到的單詞.

// 例如"public"在b后插入一個空格, 就變成了:"pub lic", 這時就有兩個單詞要處理:"pub"和"lic"

// 這時要取得的范圍是pub中p前面的位置和lic中c后面的位置

int start = indexOfWordStart(doc, pos);

int end = indexOfWordEnd(doc, pos + len);

char ch;

while (start end) {

ch = getCharAt(doc, start);

if (Character.isLetter(ch) || ch == '_') {

// 如果是以字母或者下劃線開頭, 說明是單詞

// pos為處理后的最后一個下標

start = colouringWord(doc, start);

} else {

//SwingUtilities.invokeLater(new ColouringTask(doc, pos, wordEnd - pos, normalStyle));

++start;

}

}

}

public int colouringWord(StyledDocument doc, int pos) throws BadLocationException {

int wordEnd = indexOfWordEnd(doc, pos);

String word = doc.getText(pos, wordEnd - pos); // 要進行著色的單詞

if (keywords.contains(word)) {

// 如果是關鍵字, 就進行關鍵字的著色, 否則使用普通的著色.

// 這里有一點要注意, 在insertUpdate和removeUpdate的方法調用的過程中, 不能修改doc的屬性.

// 但我們又要達到能夠修改doc的屬性, 所以把此任務放到這個方法的外面去執行.

// 實現這一目的, 可以使用新線程, 但放到swing的事件隊列里去處理更輕便一點.

SwingUtilities.invokeLater(new ColouringTask(doc, pos, wordEnd - pos, keywordStyle));

} else {

SwingUtilities.invokeLater(new ColouringTask(doc, pos, wordEnd - pos, normalStyle));

}

return wordEnd;

}

因為在insertUpdate和removeUpdate方法中不能修改document的屬性, 所以著色的任務放到這兩個方法外面, 所以使用了SwingUtilities.invokeLater來實現.

private class ColouringTask implements Runnable {

private StyledDocument doc;

private Style style;

private int pos;

private int len;

public ColouringTask(StyledDocument doc, int pos, int len, Style style) {

this.doc = doc;

this.pos = pos;

this.len = len;

this.style = style;

}

public void run() {

try {

// 這里就是對字符進行著色

doc.setCharacterAttributes(pos, len, style, true);

} catch (Exception e) {}

}

}

七: 源碼

關鍵字著色的完成代碼如下, 可以直接編譯運行. 對于數字, 運算符, 字符串等的著色處理在以后的教程中會繼續進行詳解.

import java.awt.Color;

import java.util.HashSet;

import java.util.Set;

import javax.swing.JFrame;

import javax.swing.JTextPane;

import javax.swing.SwingUtilities;

import javax.swing.event.DocumentEvent;

import javax.swing.event.DocumentListener;

import javax.swing.text.BadLocationException;

import javax.swing.text.Document;

import javax.swing.text.Style;

import javax.swing.text.StyleConstants;

import javax.swing.text.StyledDocument;

public class HighlightKeywordsDemo {

public static void main(String[] args) {

JFrame frame = new JFrame();

JTextPane editor = new JTextPane();

editor.getDocument().addDocumentListener(new SyntaxHighlighter(editor));

frame.getContentPane().add(editor);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setSize(500, 500);

frame.setVisible(true);

}

}

/**

* 當文本輸入區的有字符插入或者刪除時, 進行高亮.

*

* 要進行語法高亮, 文本輸入組件的document要是styled document才行. 所以不要用JTextArea. 可以使用JTextPane.

*

* @author Biao

*

*/

class SyntaxHighlighter implements DocumentListener {

private SetString keywords;

private Style keywordStyle;

private Style normalStyle;

public SyntaxHighlighter(JTextPane editor) {

// 準備著色使用的樣式

keywordStyle = ((StyledDocument) editor.getDocument()).addStyle("Keyword_Style", null);

normalStyle = ((StyledDocument) editor.getDocument()).addStyle("Keyword_Style", null);

StyleConstants.setForeground(keywordStyle, Color.RED);

StyleConstants.setForeground(normalStyle, Color.BLACK);

// 準備關鍵字

keywords = new HashSetString();

keywords.add("public");

keywords.add("protected");

keywords.add("private");

keywords.add("_int9");

keywords.add("float");

keywords.add("double");

}

public void colouring(StyledDocument doc, int pos, int len) throws BadLocationException {

// 取得插入或者刪除后影響到的單詞.

// 例如"public"在b后插入一個空格, 就變成了:"pub lic", 這時就有兩個單詞要處理:"pub"和"lic"

// 這時要取得的范圍是pub中p前面的位置和lic中c后面的位置

int start = indexOfWordStart(doc, pos);

int end = indexOfWordEnd(doc, pos + len);

char ch;

while (start end) {

ch = getCharAt(doc, start);

if (Character.isLetter(ch) || ch == '_') {

// 如果是以字母或者下劃線開頭, 說明是單詞

// pos為處理后的最后一個下標

start = colouringWord(doc, start);

} else {

SwingUtilities.invokeLater(new ColouringTask(doc, start, 1, normalStyle));

++start;

}

}

}

/**

* 對單詞進行著色, 并返回單詞結束的下標.

*

* @param doc

* @param pos

* @return

* @throws BadLocationException

*/

public int colouringWord(StyledDocument doc, int pos) throws BadLocationException {

int wordEnd = indexOfWordEnd(doc, pos);

String word = doc.getText(pos, wordEnd - pos);

if (keywords.contains(word)) {

// 如果是關鍵字, 就進行關鍵字的著色, 否則使用普通的著色.

// 這里有一點要注意, 在insertUpdate和removeUpdate的方法調用的過程中, 不能修改doc的屬性.

// 但我們又要達到能夠修改doc的屬性, 所以把此任務放到這個方法的外面去執行.

// 實現這一目的, 可以使用新線程, 但放到swing的事件隊列里去處理更輕便一點.

SwingUtilities.invokeLater(new ColouringTask(doc, pos, wordEnd - pos, keywordStyle));

} else {

SwingUtilities.invokeLater(new ColouringTask(doc, pos, wordEnd - pos, normalStyle));

}

return wordEnd;

}

/**

* 取得在文檔中下標在pos處的字符.

*

* 如果pos為doc.getLength(), 返回的是一個文檔的結束符, 不會拋出異常. 如果pos0, 則會拋出異常.

* 所以pos的有效值是[0, doc.getLength()]

*

* @param doc

* @param pos

* @return

* @throws BadLocationException

*/

public char getCharAt(Document doc, int pos) throws BadLocationException {

return doc.getText(pos, 1).charAt(0);

}

/**

* 取得下標為pos時, 它所在的單詞開始的下標. ?±wor^d?± (^表示pos, ?±表示開始或結束的下標)

*

* @param doc

* @param pos

* @return

* @throws BadLocationException

*/

public int indexOfWordStart(Document doc, int pos) throws BadLocationException {

// 從pos開始向前找到第一個非單詞字符.

for (; pos 0 isWordCharacter(doc, pos - 1); --pos);

return pos;

}

/**

* 取得下標為pos時, 它所在的單詞結束的下標. ?±wor^d?± (^表示pos, ?±表示開始或結束的下標)

*

* @param doc

* @param pos

* @return

* @throws BadLocationException

*/

public int indexOfWordEnd(Document doc, int pos) throws BadLocationException {

// 從pos開始向前找到第一個非單詞字符.

for (; isWordCharacter(doc, pos); ++pos);

return pos;

}

/**

* 如果一個字符是字母, 數字, 下劃線, 則返回true.

*

* @param doc

* @param pos

* @return

* @throws BadLocationException

*/

public boolean isWordCharacter(Document doc, int pos) throws BadLocationException {

char ch = getCharAt(doc, pos);

if (Character.isLetter(ch) || Character.isDigit(ch) || ch == '_') { return true; }

return false;

}

@Override

public void changedUpdate(DocumentEvent e) {

}

@Override

public void insertUpdate(DocumentEvent e) {

try {

colouring((StyledDocument) e.getDocument(), e.getOffset(), e.getLength());

} catch (BadLocationException e1) {

e1.printStackTrace();

}

}

@Override

public void removeUpdate(DocumentEvent e) {

try {

// 因為刪除后光標緊接著影響的單詞兩邊, 所以長度就不需要了

colouring((StyledDocument) e.getDocument(), e.getOffset(), 0);

} catch (BadLocationException e1) {

e1.printStackTrace();

}

}

/**

* 完成著色任務

*

* @author Biao

*

*/

private class ColouringTask implements Runnable {

private StyledDocument doc;

private Style style;

private int pos;

private int len;

public ColouringTask(StyledDocument doc, int pos, int len, Style style) {

this.doc = doc;

this.pos = pos;

this.len = len;

this.style = style;

}

public void run() {

try {

// 這里就是對字符進行著色

doc.setCharacterAttributes(pos, len, style, true);

} catch (Exception e) {}

}

}

}

如何把記事本文件變成JAVA源文件

1、打開電腦,首先點擊開始按鈕選擇打開記事本選項按鈕。

2、記事本頁面后寫好代碼之后,點擊左上角的文件選項按鈕。

3、寫好之后點擊文件下的保存選項按鈕

4、這時候就要文件名的后綴改成java

5、改好之后點擊保存,之后就可以變成JAVA源文件了。

如何修改jar包內的源文件

1、將class文件改成java文件(如果你的jar包中是包含源代碼的,即包含java文件,請跳過此步)

先將jar包通過winrar或者快壓等解壓縮軟件將jar包解壓縮,再通過一些專門的Java反編譯工具將class文件轉換為java文件(本博主是使用的是JD-GUI這個軟件)。

2、更改java源文件

將java文件放入自己專門的開發工具中(eclipse、myeclipse等),需要注意的是,應該是將需要改動的java文件放入java project中,并且要創建對應的package,再將原本的jar導入,此時可能還報錯,需要導入一些相應的jar包。當項目不報錯之后,就可以做你所需要的修改了。

3、導出jar包

將現在的java project導出為jar包,然后將原本jar包中相應的class文件替換掉(如果是jar包中含有java源文件,也需要將java文件也需要替換)。

至此,jar包修改成功。大家如果有什么問題,可以直接問我或者在下方留言,本人qq:924325679。

怎樣將Java源代碼轉換成Java開應用程序

我試了一下,jbuilder生成的exe文件,在沒有裝jre的機器上不能運行,于是我就在該exe文件的同一位置提供一個jre目錄,可是該exe文件不會去自動找這個jre,應該怎樣做才能使exe文件找到這個jre,并運行起來呢?

先寫一個bak,檢查有沒有jre,有的話就直接運行你的程序,沒有的話,先安裝再執行。

---------------------------------------------------------------

jbuilder有一個隱藏的技巧可以讓你從可執行文件來啟動java程序,(不出現console窗口我沒有做到)。需要jbuilderx的bin目錄下的這些文件:

jbuilder.exe

jbuilderw.exe (可選)

jbuilder.config

jdk.config

“jbuilder.exe”是一個通用的可執行外殼文件,用以啟動java程序,“jbuilderw.exe”好像是javaw.exe一樣,它把“jbuilder.exe”包裝起來,但是運行時候不顯示那個console的窗口。使用這些文件的關鍵是文件名。“jbuilder.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里面指定主類和類路徑,就能夠通過執行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后面去,執行過程:

copy /b ..\jbuilder.exe+hello.jar foo.exe

一個含jar包的exe文件得到了!

這個過程的大致原理是:exe文件的重要信息都在文件頭部,所以把亂七八糟的東西放exe文件尾部是不要緊的;而jar/zip文件的重要信息是在文件尾部的,這樣它們兩不相干,能夠容易的被執行。


當前文章:文件修改器java源代碼,修改源代碼的軟件
分享路徑:http://www.xueling.net.cn/article/hcdide.html

其他資訊

在線咨詢
服務熱線
服務熱線:028-86922220
TOP
主站蜘蛛池模板: chien国产乱露脸对白 | 一级国产视频 | 奇米777国产在线视频 | 18禁止看的免费污网站 | www.国产91 | 国产成人无码精品一区在线观看 | 女人张开腿让男人桶个爽 | 亚洲人成网77777亚洲色 | 99re在线视频播放 | 四虎黄色影院 | 狠狠的日| 色网视频国产高清制服一区 | 成人一区二区在线观看视频 | 国产精品原创视频 | 一级毛片免费视频观看 | 国产美女特级嫩嫩嫩bbb片 | 亚洲精品美女久久17c | 免费在线黄网站 | 欧美成人区 | 日韩精品成人一区二区在线 | 精品一区2区三区 | 激情欲成人av在线观看av | 最新国产在线播放 | 久久久久久毛片免费看 | 理?片91| 精品久久久一 | 国产在线亚州精品内射 | 久久人爱 | 欧美色综合网站 | 男人在线网站 | 狠狠干女人 | 波多野结衣1区 | 国产精品亚洲视频 | 久久毛片基地 | 绯色av蜜臀vs少妇 | 人妻内射一区二区在线视频 | 99pao成人国产永久免费视频 | 久久青青操 | 欧美不卡一区二区三区 | 久久久久久久久久一区 | 风流少妇BBWBBW69视频 |