當前位置:首頁 » 編程軟體 » java文字編譯器統計組件

java文字編譯器統計組件

發布時間: 2024-08-16 09:01:24

『壹』 java編譯器是什麼

Java編譯器是一種將Java源代碼編譯為Java位元組碼的程序。Java源代碼是以.java文件的形式存儲的,而Java位元組碼是一種由Java虛擬機(JVM)可識別的二進制格式。編譯器將源代碼文件轉換為位元組碼文件,然後可以在Java虛擬機上運行這些位元組碼文件。



Java編譯器通常是Java開發工具包(JDK)的一部分,您可以通過安裝JDK來獲得Java編譯器。JDK還包括Java虛擬機(JVM)和其他Java開發工具,例如調試器、文檔生成器等等。在命令行下,您可以使用javac命令來調用Java編譯器,將源代碼文件編譯為位元組碼文件。以下是一些常用的Java編譯器軟體。


1、Oracle JDK:Oracle Java Development Kit是一款由Oracle提供的Java開發工具包,包括Java編譯器(javac)和其他開發工具。


2、OpenJDK:OpenJDK是一個免費的Java開發工具包,是Oracle JDK的開源替代品。它包含Java編譯器和其他開發工具。


3、Eclipse:Eclipse是一個流行的Java集成開發環境(IDE),包括Java編譯器和其他開發工具。它還支持其他編程語言的開發。


4、NetBeans:NetBeans是另一個流行的Java IDE,包括Java編譯器和其他開發工具。它也支持其他編程語言的開發。


5、IntelliJ IDEA:IntelliJ IDEA是一款流行的Java IDE,包括Java編譯器和其他開發工具。它還支持其他編程語言的開發。


6、JCreator:JCreator是一款Java IDE,包括Java編譯器和其他開發工具。它也有一個免費版本和一個付費版本。


7、BlueJ:BlueJ是一款專為初學者設計的Java IDE,包括Java編譯器和其他開發工具。


除了這些,還有許多其他的Java編譯器和集成開發環境可供選擇,你可以根據自己的需求和喜好選擇適合自己的工具。

『貳』 用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.();
} 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();
}
}

熱點內容
動態規劃01背包演算法 發布:2024-11-05 22:17:40 瀏覽:849
nasm編譯器如何安裝 發布:2024-11-05 22:01:13 瀏覽:181
登錄密碼在微信的哪裡 發布:2024-11-05 22:00:29 瀏覽:739
c防止反編譯工具 發布:2024-11-05 21:56:14 瀏覽:248
安卓虛擬機怎麼用 發布:2024-11-05 21:52:48 瀏覽:344
php時間搜索 發布:2024-11-05 20:58:36 瀏覽:479
燕山大學編譯原理期末考試題 發布:2024-11-05 20:13:54 瀏覽:528
華為電腦出現臨時伺服器 發布:2024-11-05 20:05:08 瀏覽:408
斗戰神免費挖礦腳本 發布:2024-11-05 19:53:25 瀏覽:665
網吧伺服器分別是什麼 發布:2024-11-05 19:45:32 瀏覽:392