java如何被调用
Java 调用方式概述
Java 可通过多种方式被调用,具体取决于调用环境和需求。以下是常见的调用场景和方法:
通过命令行调用
Java 程序编译后的 .class 文件或打包的 .jar 文件可通过命令行直接运行。
# 编译 Java 文件
javac Main.java
# 运行编译后的类
java Main
# 运行打包的 JAR 文件(需指定主类或 MANIFEST.MF 中定义)
java -jar app.jar
通过其他语言调用 Java
使用 JNI (Java Native Interface)
允许 C/C++ 等语言通过 JNI 调用 Java 方法。
- 编写 Java 类并声明
native方法:public class NativeDemo { public native void hello(); static { System.loadLibrary("NativeDemo"); } } - 生成头文件并实现 C/C++ 代码,编译为动态库。
使用 JNA (Java Native Access)
简化 JNI 的库,直接调用动态库:
import com.sun.jna.Library;
public interface CLibrary extends Library {
void printf(String format, Object... args);
}
在 Web 服务中调用
通过 HTTP 请求
Java 编写的 RESTful API 可通过 HTTP 调用:

curl -X GET http://localhost:8080/api/example
使用 RPC 框架
如 gRPC 或 Dubbo,通过远程过程调用 Java 服务:
// gRPC 客户端示例
HelloServiceGrpc.HelloServiceBlockingStub stub = HelloServiceGrpc.newBlockingStub(channel);
HelloResponse response = stub.sayHello(HelloRequest.newBuilder().setName("World").build());
通过脚本语言调用
使用 Groovy 或 Jython
脚本语言可直接调用 Java 类:
// Groovy 调用 Java
def list = new java.util.ArrayList<String>()
list.add("Groovy")
使用 JavaScript (Nashorn 引擎)
Java 8+ 支持通过 Nashorn 调用 Java:

var ArrayList = Java.type('java.util.ArrayList');
var list = new ArrayList();
list.add("Nashorn");
在容器或框架中调用
Spring Boot 应用
通过 Spring 的依赖注入或直接调用 Bean:
@RestController
public class DemoController {
@GetMapping("/demo")
public String demo() {
return "Hello from Spring";
}
}
企业级容器(如 Tomcat)
Java Web 应用部署后,通过容器自动调用 Servlet:
@WebServlet("/hello")
public class HelloServlet extends HttpServlet {
protected void doGet(HttpServletRequest req, HttpServletResponse resp) {
resp.getWriter().write("Hello from Servlet");
}
}
自动化工具调用
Maven/Gradle 构建工具
通过构建工具执行 Java 主类或测试:
mvn exec:java -Dexec.mainClass="com.example.Main"
Jenkins 等 CI/CD 工具
在流水线中调用 Java 程序:
pipeline {
stages {
stage('Run Java') {
steps {
sh 'java -jar app.jar'
}
}
}
}
以上方法覆盖了从命令行到分布式系统的常见调用场景,具体选择需根据实际需求和技术栈决定。






