教你一招,不用编译器也可以执行Java代码

一、JDK 11+ 直接执行源文件

方法:
通过 java 命令直接运行 .java 文件,无需显式编译。
步骤:

  1. 确保使用 JDK 11 或更高版本。
  2. 编写标准 Java 类(需包含 main 方法)。
  3. 运行命令:
    java 文件名.java
    
    例如:
    java Test.java
    

特点:

  • 简化开发流程,适合快速测试单文件代码。
  • 支持 Shebang 语法(类 Unix 系统),可像脚本一样执行:
    #!/usr/bin/java --source 12
    public class Test { ... }
    
    赋予执行权限后直接运行:
    ./Test
    

适用场景:

  • 快速原型开发、学习 Java 基础语法。
  • 单文件脚本化场景(如命令行工具)。

二、JShell(Java 9+ 交互式REPL)

方法:
Java 9 引入的交互式编程工具,支持逐行执行代码片段。
步骤:

  1. 启动 JShell:
    jshell
    
  2. 输入代码并按回车执行:
    jshell> System.out.println("Hello, JShell!");
    

特点:

  • 支持变量、方法、类的动态声明与修改。
  • 提供代码补全(Tab 键)、历史记录回溯(上下箭头)等功能。
  • 可保存会话到文件(/save)或加载已保存的会话。
    适用场景:
  • 快速验证代码逻辑、学习新 API。
  • 调试复杂逻辑时的临时测试。

三、BeanShell 脚本解释器

方法:
通过 BeanShell 解释器动态执行 Java 代码片段。
步骤:

  1. 下载 bsh.jar 并配置到类路径(或通过 Maven 引入)。
  2. 启动 BeanShell 命令行:
    java bsh.Interpreter
    
  3. 输入 Java 代码并执行:
    System.out.println("Hello, BeanShell!");
    

特点:

  • 支持 Java 语法,可动态调用 Java 对象和方法。
  • 提供 GUI 模式(java bsh.Console)和文本模式。
  • 可嵌入到 Java 应用中,实现动态扩展功能。
    适用场景:
  • 开发插件系统、动态配置解析。
  • 快速原型开发和调试。

四、Java 脚本引擎 API(ScriptEngine)

方法:
利用 Java 内置的脚本引擎(如 Nashorn、BeanShell)执行代码。
示例代码:

ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("JavaScript"); // 或 "beanshell"
engine.eval("System.out.println('Hello via ScriptEngine');");

特点:

  • 支持多种脚本语言(JavaScript、Groovy 等)。
  • 可通过 eval() 方法执行字符串或文件中的代码。
    适用场景:
  • 集成动态规则引擎、用户自定义脚本。
  • 需要跨语言交互的场景。

五、在线平台(无需本地环境)

推荐工具:

  1. RunJ:
    • 提供浏览器端的 Java 代码编辑与执行,支持多版本 JDK。
    • 适合快速测试或教学演示。
  2. Replit:
    • 支持 Java、Python 等语言,无需本地安装环境。
    • 可创建、运行和分享代码片段。
      步骤:
      访问平台官网(如 RunJ 或 Replit),选择语言并粘贴代码后点击运行。

注意事项

  1. 安全性:
    • 动态执行代码可能存在安全风险,需限制脚本权限(如沙箱隔离)。
  2. 性能:
    • 解释执行效率低于编译后的代码,不适合高并发或计算密集型场景。
  3. 兼容性:
    • Nashorn 引擎在 JDK 15 后已废弃,建议使用 GraalVM 替代。
      通过上述方法,开发者可根据需求选择合适的方式,实现“零编译”执行 Java 代码。

你可能感兴趣的:(#,Java知识点,java,学习,笔记,开发语言)