当前位置:首页 > 后端开发 > 正文

java记事本怎么运行

下载JDK并配置环境变量;用文本编辑器写 Java代码保存为 XXX.java;CMD中进入文件目录,输入 javac XXX.java编译,再输入 java XXX

前期准备

必要工具安装

工具名称 作用 下载地址 备注
JDK Java开发工具包 Oracle官网/OpenJDK 需配置JAVA_HOME环境变量
文本编辑器 编写源代码 Notepad++/VS Code/Sublime Text 推荐支持语法高亮的工具
命令行终端 编译/运行Java程序 Windows CMD/Linux/macOS终端
可选 IDE 集成开发环境 Eclipse/IntelliJ IDEA/NetBeans 简化项目管理与调试

目录结构规划

建议创建如下层级的项目文件夹:

MyNotepadProject/ ├── src/ # 存放Java源代码 │ └── com/example/ # 包名(自定义) │ └── SimpleNotepad.java └── data/ # 用于存储用户文件(可选)


核心代码实现

以下是一个基于Swing的极简记事本完整代码(SimpleNotepad.java):

package com.example; import javax.swing.; import java.awt.; import java.awt.event.; import java.io.; public class SimpleNotepad extends JFrame { private JTextArea textArea; private String currentFilePath = ""; public SimpleNotepad() { // 初始化窗口属性 setTitle("Java简易记事本"); setSize(800, 600); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setLocationRelativeTo(null); // 居中显示 // 创建菜单栏 JMenuBar menuBar = new JMenuBar(); JMenu fileMenu = new JMenu("文件(F)"); JMenuItem newItem = new JMenuItem("新建"); JMenuItem openItem = new JMenuItem("打开..."); JMenuItem saveItem = new JMenuItem("保存"); JMenuItem exitItem = new JMenuItem("退出"); // 添加菜单项到菜单 fileMenu.add(newItem); fileMenu.add(openItem); fileMenu.add(saveItem); fileMenu.addSeparator(); fileMenu.add(exitItem); menuBar.add(fileMenu); setJMenuBar(menuBar); // 创建文本编辑区 textArea = new JTextArea(); JScrollPane scrollPane = new JScrollPane(textArea); add(scrollPane, BorderLayout.CENTER); // 绑定事件监听器 newItem.addActionListener(e -> textArea.setText("")); openItem.addActionListener(this::openFile); saveItem.addActionListener(this::saveFile); exitItem.addActionListener(e -> System.exit(0)); } // 打开文件方法 private void openFile(ActionEvent e) { JFileChooser fileChooser = new JFileChooser(); int result = fileChooser.showOpenDialog(this); if (result == JFileChooser.APPROVE_OPTION) { File selectedFile = fileChooser.getSelectedFile(); currentFilePath = selectedFile.getAbsolutePath(); try (BufferedReader reader = new BufferedReader(new FileReader(selectedFile))) { StringBuilder content = new StringBuilder(); String line; while ((line = reader.readLine()) != null) { content.append(line).append("n"); } textArea.setText(content.toString()); } catch (IOException ex) { JOptionPane.showMessageDialog(this, "文件读取失败: " + ex.getMessage(), "错误", JOptionPane.ERROR_MESSAGE); } } } // 保存文件方法 private void saveFile(ActionEvent e) { if (!currentFilePath.isEmpty()) { // 直接保存到已有文件 writeToFile(currentFilePath); } else { // 首次保存触发另存为 saveAsFile(); } } // 另存为方法 private void saveAsFile() { JFileChooser fileChooser = new JFileChooser(); int result = fileChooser.showSaveDialog(this); if (result == JFileChooser.APPROVE_OPTION) { File selectedFile = fileChooser.getSelectedFile(); currentFilePath = selectedFile.getAbsolutePath(); writeToFile(currentFilePath); } } // 通用文件写入方法 private void writeToFile(String filePath) { try (BufferedWriter writer = new BufferedWriter(new FileWriter(filePath))) { writer.write(textArea.getText()); JOptionPane.showMessageDialog(this, "文件保存成功!", "提示", JOptionPane.INFORMATION_MESSAGE); } catch (IOException ex) { JOptionPane.showMessageDialog(this, "文件保存失败: " + ex.getMessage(), "错误", JOptionPane.ERROR_MESSAGE); } } public static void main(String[] args) { // 确保GUI在事件调度线程中运行 SwingUtilities.invokeLater(() -> { new SimpleNotepad().setVisible(true); }); } }


编译与运行步骤

方法一:通过命令行手动操作

  1. 定位到源码目录

    打开终端/CMD,进入src目录(假设项目结构如前所述):

  2. 编译Java文件

    执行以下命令生成.class字节码文件: javac SimpleNotepad.java

    ▶️ 成功标志:无报错且生成SimpleNotepad.class文件。

  3. 运行程序

    输入以下命令启动记事本:

    java记事本怎么运行 第1张

    java SimpleNotepad

    ▶️ 注意:若出现Error: Could not find or load main class,请检查三点:①当前目录是否包含SimpleNotepad.class;②类名拼写是否正确;③是否已正确安装JDK。

  4. ️ 方法二:通过IDE运行(以IntelliJ IDEA为例)

    1. 导入项目

      打开IDE → File → Open → 选择项目根目录。

    2. 创建运行配置

      右键点击SimpleNotepad.java → Run 'SimpleNotepad.main()'。

    3. 调试与修改

      可直接在IDE中修改代码后重新运行,无需手动编译。


    功能扩展建议

    功能 实现思路 涉及技术点
    字体大小调整 添加下拉框选择字体尺寸,动态修改JTextArea的字体属性 Font类、动作监听器
    查找替换 弹出对话框输入关键词,调用JTextArea的replaceRange()方法实现替换 正则表达式、字符串处理
    状态栏显示光标位置 添加JLabel作为状态栏,监听文本区焦点事件并实时更新字符计数 文档监听器、布局管理器
    多标签页 改用JTabbedPane替代单一文本区,支持多个文档同时编辑 复合布局、集合管理


    常见问题排查

    Q1: 运行时提示ClassNotFoundException怎么办?

    原因:类路径(Classpath)未正确设置,导致JVM找不到目标类。

    解决方案

    java记事本怎么运行 第2张

    • 命令行运行时需切换到.class文件所在目录;
    • IDE中检查模块依赖配置;
    • 确保类名与文件名完全一致(区分大小写)。

    Q2: 保存文件时报Access Denied错误?

    原因:程序没有权限向指定路径写入文件。

    解决方案

    • 更换保存路径至用户主目录或桌面;
    • 在代码中捕获SecurityException并提供友好提示;
    • Windows系统右键点击程序图标→属性→兼容性→勾选“以管理员身份运行”。


    相关问答FAQs

    Q: 这个记事本能打开Word文档吗?

    A: 不能直接打开.docx格式文件,本程序仅支持纯文本文件(.txt),如需支持富文本,需改用JEditorPane并集成RTF解析库。

    Q: 如何让记事本记住上次打开的文件列表?

    A: 可通过以下步骤实现:

    1. 使用Preferences API或配置文件(如properties文件)存储历史记录;
    2. 每次启动时读取历史记录并更新菜单;
    3. 添加“最近打开”子菜单项,绑定双击事件打开对应文件。

      示例代码片段: // 保存最近打开的文件路径到数组 String[] recentFiles = new String[5]; // 最多记录5个文件 // 读取/写入逻辑需结合文件

    java记事本怎么运行 第3张

0