问题描述
我将我的应用程序开发分为三个模块,这些模块需要用 2 种语言(Python 和 Java)来完成.在 python 脚本完成执行后,我需要调用 java 实例。可能吗?。
解决方法
如果您在 Java 中使用 Spring,则可以在运行 Python 脚本的地方使用 @PostConstruct 注释。在组件初始化后调用的带注释的方法。举个例子:
import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;
import org.springframework.stereotype.Component;
@Component
public class MyAmazingComponent {
@PostConstruct
private void callScript() {
Process process;
try{
process = Runtime.getRuntime().exec(new String[]{"path/script_python.py","arg1","arg2"});
}catch(Exception e) {
System.out.println("Exception " + e.toString());
}
}
public void doSomething(){...}
}
以上代码需要以下依赖项(当然如果你使用maven并且版本不是必须的,你可以改变它们):
<dependency>
<groupId>javax.annotation</groupId>
<artifactId>javax.annotation-api</artifactId>
<version>1.3.2</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.0.6.RELEASE</version>
</dependency>