java編譯器能編譯中文嗎
㈠ 在windows7下如何正確的安裝及配置java運行環境及java編譯器(Eclipse)
這個在網上搜索一大堆呢
過程都差不多
第一個:安裝及配置java運行環境
首先下載jdk
安裝JDK就是在你本地上面安裝一個Java虛擬機,他為你所編寫的Java程序提供編譯和運行的核心環境(實話實說 這句是拷貝的 但意思明白就行)
jdk下載地址在sun主頁上找就可以了
http://java.sun.com/javase/downloads/index.jsp
第二下載後配置環境變數
在系統變數編輯如下兩個玩意兒(具體操作--右擊我的電腦--屬性--高級--環境變數--找到系統變數--
(先問下你的安裝路徑在哪裡 我的是g盤 以我的為例)
1:變數名=PATH(已經有了的話在後面追加,記得前面加個';')
變數值=G:\java-jdk6u1\bin
2:在系統變數那個框那點擊 -新建-
變數名=CLASSPATH (大小寫都行)
變數值=.;變數名=CLASSPATH
變數值=.;G:\java-jdk6u1\lib
(這里的'.;'不能少哦)
如果是初學建議先不要用Eclipse----直接在記事本上多敲代碼
第二:
java編譯器(Eclipse)
這個是eclipse3.2中文版:
http://wlzx.zzuli.e.cn/download/eclipse.rar
還有eclipse3.5版本的我是在迅雷上搜的 有很多
參考視頻有
小龍魂的教程視頻
http://v.youku.com/v_show/id_XODEwNDA2NDQ=.html?full=true
還有
馬士兵的教程
http://v.youku.com/v_show/id_XNTc3NTU3MDA=.html
剛開始的視頻都是教怎麼安裝jdk和運行環境
以及安裝完成後的運行
㈡ 為什麼java編譯器輸入法不能切換到中文
將EN那個(下面可能還有其他什麼輸入法)整個刪除,再在默認輸入語音下面選擇中文(中國)-簡中-美式,然後建議你只安一個輸入法,就安搜狗吧,這樣中英切換就方便許多了,另外,如果你不想只安一個輸入法,你只要在用搜狗輸入法時,如果想換英文的,只要安shift就行了.
2.在任務欄前多出了CH和EN兩個字母:
使用windows操作系統中文版並不表示只能進行中文語言的錄入(中文版是指用戶界面是面向中文用戶的)。
所以你打開 控制面板->區域和語言選項->「語言」選項卡->「詳細信息」按鈕,在「文字輸入和輸入語言」窗口中點「添加」按鈕,彈出「添加輸入語言」對話框中第一欄就是「輸入語言」,它表示選錄入時的背景語言(第二欄「鍵盤布局\輸入法」是在此錄入背景語言下選輸入法),其下拉列表中可看到什麼 希臘語 匈牙利語 等。任務欄的EN表示背景語言為英語。
一般用戶用不上這個。在前面「文字輸入和輸入語言」窗口中「已安裝的服務(I)」區域中「EN
英語(X國)」下的輸入法一個一個選中然後點「刪除」,最後確定就是了。
後面你說的是Ctrl加Shift應該是各輸入法間切換的快捷鍵,而不是搜狗拼音的中英文狀態間的切換。進入搜狗拼音輸入法「設置屬性」->按鍵設置 可見其中英文狀態切換要麼不用快捷鍵要麼單用ctrl或shift。
、首先任務欄上的輸入法圖標上點右鍵選擇設置。
2、然後選擇「高級鍵設置」,選中第一個「在輸入語言之間」,然後點擊下面的「更改按鍵順序」,先
勾選「切換輸入語言」下面選擇左手ALT。取消右邊「切換鍵盤布局」前的勾(即選擇「未分配」),點
擊確定。
然後選中「中文(簡體)輸入法 - 輸入法/非輸入法切換」,點擊「更改按鍵順序」,取消「啟用按鍵順
序」前的勾,再確定。
3、再次進入步驟2的設置,選中「在輸入語言之間」,點擊「更改按鍵順序」,把右邊「切換鍵盤布局」
的「Ctrl+Shift」打上勾,確定後退出。
4、搞定!
解決了無法使用ctrl+shift以及ctrl+space切換輸入法的問題。
㈢ 用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();
}
}
㈣ Java編譯器如何實現把原始的代碼翻譯成目標機的機器語言
Java編譯器並沒有把源代碼翻譯為目標機器的機器語言程序,而是翻譯成了位元組碼文件。位元組碼文件由Java虛擬機解釋運行。Java解釋器就是Java虛擬機。
Java位元組碼按照Java語言規范,統一了位元組順序等差異(大端還是小端?CISC處理器和其它的RISC處理器是不同的),對編譯器的實現細節也進行了具體規定。這樣就可以在虛擬機中執行了。
㈤ 為什麼在編譯器上編譯後顯示不了中文,是編譯器的緣故嗎 那什麼編譯器支持中文
要根本上了解怎麼顯示中文,你首先要 了解 字元集 這個概念
ascii 字元集共有256個字元 無漢字 unicode有各個國家的文字元號,包括幾乎所有漢字,
編譯器是否支持漢字取決於它採用什麼字元集。
當年沒有unicode時候,程序員大牛 用兩個ascii碼(從後128個取出)表示一個漢字代號。
才使漢字登上了計算機舞台
當年不能打漢字時候都是用漢字字型檔 以點陣方式從vga模式上畫出來的。。。
你上網查查 ascii 和unicode 能搜到所有你在這方面的疑惑
㈥ java編譯文本編輯器
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class EditorJFrame extends JFrame implements ActionListener, ItemListener, MouseListener
{
private JTextField text_size; //字型大小文本行
private JCheckBox checkbox_bold, checkbox_italic; //粗體、斜體復選框
private JButton button_cut, button_, button_paste; //剪切、復制、粘貼按鈕
private JTextArea textarea; //文本區
private JPopupMenu popupmenu; //快捷菜單
private JDialog dialog; //出錯提示對話框
private JLabel label_dialog; //對話框中的標簽
public EditorJFrame()
{
super("文本編輯器"); //默認BorderLayout布局
this.setSize(500,300);
this.setLocation(300,240);
this.setDefaultCloseOperation(EXIT_ON_CLOSE); //單擊窗口關閉按鈕時,結束程序運行
textarea = new JTextArea("TextArea");
textarea.addMouseListener(this); //為文本區注冊滑鼠事件監聽器
this.add(textarea); //文本區添加到框架的中部
JPanel panel = new JPanel(new FlowLayout(FlowLayout.LEFT)); //面板為流布局,左對齊
this.add(panel,"North"); //面板添加到框架的北部
text_size = new JTextField("12",10);
panel.add(text_size);
text_size.addActionListener(this); //注冊文本行的單擊事件監聽器
checkbox_bold = new JCheckBox("粗體"); //復選框
panel.add(checkbox_bold);
checkbox_bold.addItemListener(this); //注冊復選框的選擇事件監聽器
checkbox_italic = new JCheckBox("斜體");
panel.add(checkbox_italic);
checkbox_italic.addItemListener(this);
this.addmyMenu(); //調用自定義方法,添加菜單
this.setVisible(true);
}
private void addmyMenu() //添加主菜單、快捷菜單、對話框
{
JMenuBar menubar = new JMenuBar(); //菜單欄
this.setJMenuBar(menubar); //框架上添加菜單欄
JMenu menu_file = new JMenu("文件"); //菜單
menubar.add(menu_file); //菜單欄中加入菜單
menu_file.add(new JMenuItem("打開")); //生成菜單項並加入到菜單
menu_file.add(new JMenuItem("保存"));
menu_file.addSeparator(); //加分隔線
JMenuItem menuitem_exit = new JMenuItem("退出");
menu_file.add(menuitem_exit);
menuitem_exit.addActionListener(this); //為菜單項注冊單擊事件監聽器
JMenu menu_edit = new JMenu("編輯");
menubar.add(menu_edit);
JMenu menu_style = new JMenu("字形");
menu_style.add(new JCheckBoxMenuItem("粗體")); //復選菜單項
menu_style.add(new JCheckBoxMenuItem("斜體"));
menu_edit.add(menu_style); //菜單加入到菜單中成為二級菜單
JMenu menu_color = new JMenu("顏色");
menu_edit.add(menu_color);
ButtonGroup buttongroup = new ButtonGroup(); //按鈕組
JRadioButtonMenuItem rbmi_red = new JRadioButtonMenuItem("紅",true); //單選菜單項
buttongroup.add(rbmi_red); //單選菜單項添加到按鈕組
menu_color.add(rbmi_red); //單選菜單項添加到菜單
JRadioButtonMenuItem rbmi_green = new JRadioButtonMenuItem("綠",true);
buttongroup.add(rbmi_green);
menu_color.add(rbmi_green);
JRadioButtonMenuItem rbmi_blue = new JRadioButtonMenuItem("藍",true);
buttongroup.add(rbmi_blue);
menu_color.add(rbmi_blue);
menubar.add(new JMenu("幫助"));
popupmenu = new JPopupMenu(); //彈出式菜單對象
JMenuItem menuitem_cut = new JMenuItem("剪切");
menuitem_cut.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));//設置快捷鍵Ctrl+X
popupmenu.add(menuitem_cut); //加入剪切菜單項
menuitem_cut.addActionListener(this);
JMenuItem menuitem_ = new JMenuItem("復制");
menuitem_.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));//設置快捷鍵Ctrl+C
popupmenu.add(menuitem_);
menuitem_.addActionListener(this);
JMenuItem menuitem_paste = new JMenuItem("粘貼");
menuitem_paste.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));//設置快捷鍵Ctrl+V
popupmenu.add(menuitem_paste);
menuitem_paste.addActionListener(this);
textarea.add(popupmenu); //文本區添加快捷菜單
dialog = new JDialog(this,"提示");
dialog.setSize(240,80);
label_dialog = new JLabel("",JLabel.CENTER);
dialog.add(label_dialog);
dialog.setDefaultCloseOperation(HIDE_ON_CLOSE); //單擊對話框的關閉按鈕時,隱藏對話框而不結束程序運行
}
public void actionPerformed(ActionEvent e) //單擊事件處理程序
{
if(e.getActionCommand()=="退出") //不能用switch(int)語句
System.exit(0); //單擊菜單項時結束程序
if(e.getActionCommand()=="剪切")
textarea.cut(); //將選中文本剪切送系統剪貼板
if(e.getActionCommand()=="復制")
textarea.();
if(e.getActionCommand()=="粘貼")
textarea.paste();
if(e.getSource()==text_size) //單擊文本行時,改變字型大小
{
int size=0;
try
{
size = Integer.parseInt(text_size.getText());
if (size<=0 || size>72)
throw new Exception("SizeException"); //拋出異常對象
java.awt.Font font = textarea.getFont();
textarea.setFont(new Font(font.getName(),font.getStyle(),size));
}
catch(NumberFormatException nfe)
{
label_dialog.setText("\""+text_size.getText()+"\" 不能轉換成整數,請重新輸入!");
dialog.setLocation(this.getX()+100,this.getY()+100);
dialog.setVisible(true);
}
catch(Exception ex)
{
if (ex.getMessage()=="SizeException") //捕獲自己拋出的異常對象
{
label_dialog.setText(size+" 字型大小不合適,請重新輸入!");
dialog.setLocation(this.getX()+100,this.getY()+100);
dialog.setVisible(true);
}
}
finally{}
}
}
public void itemStateChanged(ItemEvent e) //復選框選擇事件處理程序
{ //實現ItemListener介面中的方法
Font font = textarea.getFont();
int style = font.getStyle();
if (e.getSource()==checkbox_bold)
style = style ^ 1; //整數的位運算,異或^
if (e.getSource()==checkbox_italic)
style = style ^ 2;
textarea.setFont(new Font(font.getName(),style,font.getSize()));
}
public void mouseClicked(MouseEvent mec) //單擊滑鼠時觸發
{ //實現MouseListener介面中的方法
if (mec.getModifiers()==mec.BUTTON3_MASK) //單擊的是滑鼠右鍵
popupmenu.show(textarea,mec.getX(),mec.getY());//在滑鼠單擊處顯示快捷菜單
}
public void mousePressed(MouseEvent mep) { }
public void mouseReleased(MouseEvent mer) { }
public void mouseEntered(MouseEvent mee) { }
public void mouseExited(MouseEvent mex) { }
public void mouseDragged(MouseEvent med) { }
public static void main(String arg[])
{
new EditorJFrame();
}
}