【发布时间】:2017-05-04 14:33:13
【问题描述】:
我正在尝试将 python 连接到 BigSQL。我有一个 java 代码可以将 python 连接到 BigSQL 并从 BigSQL 检索数据。下面是我的示例代码
public class Hello {
public static void main(String[] args) {
try(Connection con = DriverManager.getConnection("connection details")) {
Class.forName("com.ibm.db2.jcc.DB2Driver");
Statement stmt = con.createStatement();
System.out.println("Connected to BigSQL");
ResultSet result = stmt.executeQuery("select * from table limit 10");
while (result.next()) {
//Retrieve by com_name
String com_name = result.getString(1);
//Retrieve by family
String family = result.getString(2);
//Retrieve by sci_name
String sci_name = result.getString(3);
//Retrieve by symbol
String symbol = result.getString(4);
//Retrieve by synonym
String synonym = result.getString(5);
System.out.println(com_name+":"+family+":"+sci_name+":"+symbol+":"+synonym);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
我编写了一个 python 代码来使用我的 python 调用这个 java 代码
import os
import os.path,subprocess
from subprocess import STDOUT,PIPE
path='Location where my .java file is'
os.chdir(path)
def compile_java(java_file):
subprocess.check_call(['javac', java_file])
def execute_java(java_file):
java_class,ext = os.path.splitext(java_file)
cmd = ['java', java_class]
compile_java('Hello.java')
execute_java("Hello")
我的 python 代码运行成功,但我无法检索
中提到的 java 输出System.out.println(com_name+":"+family+":"+sci_name+":"+symbol+":"+synonym);
你能帮帮我吗?
提前致谢
【问题讨论】:
-
为什么要从 python 执行 Java 代码?你可以改用 Jython 或 bash 吗?
-
其实根据我的项目要求,我只需要使用python
-
execute_java什么都不做......你应该在那里添加 subprocess.check_call。 -
你能给我一些代码sn-p吗?使用 java 代码的简单 java 代码(如“Hello world”)与我的 execute_java 一起使用,它还在控制台中打印“Hello World”。
-
@MauriceMeyer 可以 subprocess.check_call 与 Java 代码一起使用吗?我需要将我的 java 代码粘贴到 subprocess.check_call() 中吗?