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

java代碼創建編譯器,自制java編譯器

用java做一個java的編譯器

1. 下載

我們提供的服務有:成都做網站、網站制作、微信公眾號開發、網站優化、網站認證、遼寧ssl等。為上千余家企事業單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的遼寧網站制作公司

在GCC網站上()或者通過網上搜索可以查找到下載資源。目前GCC的最新版本為 3.4.0。可供下載的文件一般有兩種形式:gcc-3.4.0.tar.gz和gcc-3.4.0.tar.bz2,只是壓縮格式不一樣,內容完全一致,下載其中一種即可。

2. 解壓縮

根據壓縮格式,選擇下面相應的一種方式解包(以下的“%”表示命令行提示符):

% tar xzvf gcc-3.4.0.tar.gz

或者

% bzcat gcc-3.4.0.tar.bz2 | tar xvf -

新生成的gcc-3.4.0這個目錄被稱為源目錄,用${srcdir}表示它。以后在出現${srcdir}的地方,應該用真實的路徑來替換它。用pwd命令可以查看當前路徑。

在${srcdir}/INSTALL目錄下有詳細的GCC安裝說明,可用瀏覽器打開index.html閱讀。

3. 建立目標目錄

目標目錄(用${objdir}表示)是用來存放編譯結果的地方。GCC建議編譯后的文件不要放在源目錄${srcdir]中(雖然這樣做也可以),最好單獨存放在另外一個目錄中,而且不能是${srcdir}的子目錄。

例如,可以這樣建立一個叫 gcc-build 的目標目錄(與源目錄${srcdir}是同級目錄):

% mkdir gcc-build

% cd gcc-build

以下的操作主要是在目標目錄 ${objdir} 下進行。

4. 配置

配置的目的是決定將GCC編譯器安裝到什么地方(${destdir}),支持什么語言以及指定其它一些選項等。其中,${destdir}不能與${objdir}或${srcdir}目錄相同。

配置是通過執行${srcdir}下的configure來完成的。其命令格式為(記得用你的真實路徑替換${destdir}):

% ${srcdir}/configure --prefix=${destdir} [其它選項]

例如,如果想將GCC 3.4.0安裝到/usr/local/gcc-3.4.0目錄下,則${destdir}就表示這個路徑。

在我的機器上,我是這樣配置的:

% ../gcc-3.4.0/configure --prefix=/usr/local/gcc-3.4.0 --enable-threads=posix --disable-checking --enable--long-long --host=i386-redhat-linux --with-system-zlib --enable-languages=c,c++,java

將GCC安裝在/usr/local/gcc-3.4.0目錄下,支持C/C++和JAVA語言,其它選項參見GCC提供的幫助說明。

5. 編譯

% make

這是一個漫長的過程。在我的機器上(P4-1.6),這個過程用了50多分鐘。

6. 安裝

執行下面的命令將編譯好的庫文件等拷貝到${destdir}目錄中(根據你設定的路徑,可能需要管理員的權限):

% make install

至此,GCC 3.4.0安裝過程就完成了。

6. 其它設置

GCC 3.4.0的所有文件,包括命令文件(如gcc、g++)、庫文件等都在${destdir}目錄下分別存放,如命令文件放在bin目錄下、庫文件在lib下、頭文件在include下等。由于命令文件和庫文件所在的目錄還沒有包含在相應的搜索路徑內,所以必須要作適當的設置之后編譯器才能順利地找到并使用它們。

6.1 gcc、g++、gcj的設置

要想使用GCC 3.4.0的gcc等命令,簡單的方法就是把它的路徑${destdir}/bin放在環境變量PATH中。我不用這種方式,而是用符號連接的方式實現,這樣做的好處是我仍然可以使用系統上原來的舊版本的GCC編譯器。

首先,查看原來的gcc所在的路徑:

% which gcc

在我的系統上,上述命令顯示:/usr/bin/gcc。因此,原來的gcc命令在/usr/bin目錄下。我們可以把GCC 3.4.0中的gcc、g++、gcj等命令在/usr/bin目錄下分別做一個符號連接:

% cd /usr/bin

% ln -s ${destdir}/bin/gcc gcc34

% ln -s ${destdir}/bin/g++ g++34

% ln -s ${destdir}/bin/gcj gcj34

這樣,就可以分別使用gcc34、g++34、gcj34來調用GCC 3.4.0的gcc、g++、gcj完成對C、C++、JAVA程序的編譯了。同時,仍然能夠使用舊版本的GCC編譯器中的gcc、g++等命令。

6.2 庫路徑的設置

將${destdir}/lib路徑添加到環境變量LD_LIBRARY_PATH中,最好添加到系統的配置文件中,這樣就不必要每次都設置這個環境變量了。

例如,如果GCC 3.4.0安裝在/usr/local/gcc-3.4.0目錄下,在RH Linux下可以直接在命令行上執行或者在文件/etc/profile中添加下面一句:

setenv LD_LIBRARY_PATH /usr/local/gcc-3.4.0/lib:$LD_LIBRARY_PATH

7. 測試

用新的編譯命令(gcc34、g++34等)編譯你以前的C、C++程序,檢驗新安裝的GCC編譯器是否能正常工作。

8. 根據需要,可以刪除或者保留${srcdir}和${objdir}目錄。

如果用的是ubuntu或者是fedora的話 可以在源里直接安裝

java語言如何編寫程序?

如下:

(1) 一個Java語言開發工具包(Java Devekopment Kit),其中包括Java 編譯器和Java運行環境。

(2) 一份Java語言API文檔,目前版本的Java語言API文檔同樣可以免費。

(3) 一個Java語言集成開發環境,能夠在其中編輯Java代碼,并且進行編譯與調試。推薦使用的集成開發環境是JCreator。

建議去找老師讓老師 帶你做 項目 我這幾天正在做的 感覺收獲好多的 上課學到的東西其實更本就不夠用的 只有實踐了 你才能知道自己的差距

用java做文本編譯器

給你個簡單的記事本代碼,自己看著修改吧!

package com.csk.notepad;

import java.awt.*;

import java.awt.event.*;

import java.io.*;

import javax.swing.*;

public class MyNotepad implements ActionListener {

private JFrame frame = new JFrame("Notepad By ChenXiaoKang");

private JTextArea jta = new JTextArea();

private String result = "";

private boolean flag = true;

private File f;

private JButton jb = new JButton("開始");

private JTextField jtf = new JTextField(15);

private JTextField jt = new JTextField(15);

private JButton jbt = new JButton("替換為");

private JButton jba = new JButton("全部替換");

private Icon ic = new ImageIcon("D:\\java課堂筆記\\GUI\\11.gif");

private String value;

private int start = 0;

private JFrame jf = new JFrame("查找");

private JFrame jfc = new JFrame("替換");

@Override

public void actionPerformed(ActionEvent e) {

String comm = e.getActionCommand();

if ("新建".equals(comm)) {

if (!(frame.getTitle().equals("新記事本"))) {

if (!flag) {

write();

newNew();

} else {

JFileChooser jfc = new JFileChooser("D:\\java課堂筆記");

int returnVal = jfc.showDialog(null, "保存為");

if (returnVal == JFileChooser.APPROVE_OPTION) {// 選擇文件后再執行下面的語句,保證了程序的健壯性

f = jfc.getSelectedFile();

flag = false;

write();

}

}

} else if (!(jta.getText().isEmpty())) {

JFileChooser jfc = new JFileChooser("D:\\java課堂筆記");

int returnVal = jfc.showDialog(null, "保存為");

if (returnVal == JFileChooser.APPROVE_OPTION) {// 選擇文件后再執行下面的語句,保證了程序的健壯性

f = jfc.getSelectedFile();

flag = false;

write();

newNew();

}

} else {

newNew();

}

} else if ("打開".equals(comm)) {

JFileChooser jfc = new JFileChooser("D:\\java課堂筆記");

jfc.setDialogType(JFileChooser.OPEN_DIALOG);

int returnVal = jfc.showOpenDialog(null);

if (returnVal == JFileChooser.APPROVE_OPTION) {// 選擇文件后再執行下面的語句,保證了程序的健壯性

f = jfc.getSelectedFile();

frame.setTitle(f.getName());

result = read();

flag = false;

value = result;

jta.setText(result);

}

} else if ("保存".equals(comm)) {

JFileChooser jfc = new JFileChooser("D:\\java課堂筆記");

if (flag) {

int returnVal = jfc.showDialog(null, "保存為");

if (returnVal == JFileChooser.APPROVE_OPTION) {// 選擇文件后再執行下面的語句,保證了程序的健壯性

f = jfc.getSelectedFile();

flag = false;

write();

}

} else {

write();

}

} else if ("另存".equals(comm)) {

JFileChooser jfc = new JFileChooser("D:\\java課堂筆記");

int returnVal = jfc.showDialog(null, "另存");

if (returnVal == JFileChooser.APPROVE_OPTION) {// 選擇文件后再執行下面的語句,保證了程序的健壯性

f = jfc.getSelectedFile();

write();

}

} else if ("退出".equals(comm)) {

System.exit(0);

} else if ("撤銷".equals(comm)) {

jta.setText(value);

} else if ("剪切".equals(comm)) {

value = jta.getText();

jta.cut();

} else if ("復制".equals(comm)) {

jta.copy();

} else if ("粘貼".equals(comm)) {

value = jta.getText();

jta.paste();

} else if ("刪除".equals(comm)) {

value = jta.getText();

jta.replaceSelection(null);

} else if ("全選".equals(comm)) {

jta.selectAll();

} else if ("查找".equals(comm)) {

value = jta.getText();

jf.add(jtf, BorderLayout.CENTER);

jf.add(jb, BorderLayout.SOUTH);

jf.setLocation(300, 300);

jf.pack();

jf.setVisible(true);

jf.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

} else if ("替換".equals(comm)) {

value = jta.getText();

GridLayout gl = new GridLayout(3, 3);

JLabel jl1 = new JLabel("查找內容:");

JLabel jl2 = new JLabel("替換為:");

jfc.setLayout(gl);

jfc.add(jl1);

jfc.add(jtf);

jfc.add(jb);

jfc.add(jl2);

jfc.add(jt);

jfc.add(jbt);

JLabel jl3 = new JLabel();

JLabel jl4 = new JLabel();

jfc.add(jl3);

jfc.add(jl4);

jfc.add(jba);

jfc.setLocation(300, 300);

jfc.pack();

jfc.setVisible(true);

jfc.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

} else if ("版本".equals(comm)) {

JDialog jd = new JDialog(frame, "關于對話框");

jd.setSize(200, 200);

JLabel l = new JLabel("哈哈哈哈哈哈哈哈哈哈呵呵呵呵呵呵呵呵呵呵呵呵呵");

jd.add(l, BorderLayout.CENTER);

jd.setLocation(100, 200);

jd.setSize(300, 300);

jd.setVisible(true);

// jd.pack();

jd.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);

} else if ("開始".equals(comm) || "下一個".equals(comm)) {

String temp = jtf.getText();

int s = value.indexOf(temp, start);

if (value.indexOf(temp, start) != -1) {

jta.setSelectionStart(s);

jta.setSelectionEnd(s + temp.length());

jta.setSelectedTextColor(Color.GREEN);

start = s + 1;

jb.setText("下一個");

// value=value.substring(s+temp.length());//不能截取字串

} else {

JOptionPane.showMessageDialog(jf, "查找完畢!", "提示", 0, ic);

jf.dispose();

}

} else if ("替換為".equals(comm)) {

String temp = jtf.getText();

int s = value.indexOf(temp, start);

if (value.indexOf(temp, start) != -1) {

jta.setSelectionStart(s);

jta.setSelectionEnd(s + temp.length());

jta.setSelectedTextColor(Color.GREEN);

start = s + 1;

jta.replaceSelection(jt.getText());

} else {

JOptionPane.showMessageDialog(jf, "查找完畢!", "提示", 0, ic);

jf.dispose();

}

} else if ("全部替換".equals(comm)) {

String temp = jta.getText();

temp = temp.replaceAll(jtf.getText(), jt.getText());

jta.setText(temp);

}

}

public String read() {

String temp = "";

try {

FileInputStream fis = new FileInputStream(f.getAbsolutePath());

byte[] b = new byte[1024];

while (true) {

int num = fis.read(b);

if (num == -1)

break;

temp = temp + new String(b, 0, num);

}

fis.close();

} catch (Exception e1) {

e1.printStackTrace();

}

return temp;

}

public void write() {

try {

FileOutputStream fos = new FileOutputStream(f);

fos.write(jta.getText().getBytes());

fos.close();

} catch (Exception e) {

e.printStackTrace();

}

}

public void newNew() {

frame.dispose();

new MyNotepad();

flag = true;

}

public MyNotepad() {

JMenuBar jmb = new JMenuBar();

String[] menuLab = { "文件", "編輯", "幫助" };

String[][] menuItemLab = { { "新建", "打開", "保存", "另存", "退出" },

{ "撤銷", "剪切", "復制", "粘貼", "刪除", "全選", "查找", "替換" }, { "版本" } };

for (int i = 0; i menuLab.length; i++) {

JMenu menu = new JMenu(menuLab[i]);

jmb.add(menu);

for (int j = 0; j menuItemLab[i].length; j++) {

JMenuItem jmi = new JMenuItem(menuItemLab[i][j]);

menu.add(jmi);

jmi.addActionListener(this);

}

}

frame.setJMenuBar(jmb);

jta.setLineWrap(true);// 自動換行

JScrollPane jsp = new JScrollPane(jta);// 滾動窗口面板

frame.add(jsp);

jb.addActionListener(this);

jbt.addActionListener(this);

jba.addActionListener(this);

frame.setLocation(200, 50);

frame.setSize(620, 660);

frame.setVisible(true);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}

public static void main(String[] args) {

new MyNotepad();

}

}

分享名稱:java代碼創建編譯器,自制java編譯器
文章起源:http://vcdvsql.cn/article46/hshehg.html

成都網站建設公司_創新互聯,為您提供網站內鏈關鍵詞優化Google網站改版網站導航

廣告

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

搜索引擎優化