当前位置: 首页 > 面试题库 >

如何从python代码中的.jar执行中获取输出?

卫胜
2023-03-14
问题内容

我正在对执行SQL到DBMS并检索数据的python模块进行编程。我正在尝试使用jdbc
jar文件而不是本机数据库驱动程序。我想知道如何在python中执行jar文件并从jar执行中获取输出。而且我想知道如何将SQL字符串传递给jar参数。这是简化的代码。任何帮助是极大的赞赏。

[Java代码]

public class GetDBResults {
    public static void main(String[] args) {

        // return sql results
        for(int i=0; i<=100; i++){
            // Is this the proper way to generate the output?
            System.out.println(i+"/t"+i*100+1);
    }
  }
}

[python代码]

subprocess.call( [ 'java','-jar','./GET_DB_DATA.jar' )

# how to get results from jar execution?
# how to pass SQL string to jar execution?

问题答案:

您可以通过管道读取输出:

>>> from subprocess import Popen, PIPE, STDOUT
>>> p = Popen(['java', '-jar', './GET_DB_DATA.jar'], stdout=PIPE, stderr=STDOUT)
>>> for line in p.stdout:
    print line

关于将字符串传递到stdin,您可以通过以下方式实现:

>>> p = Popen(['cat'], stdin=PIPE, stdout=PIPE, stderr=STDOUT)
>>> stdout, stderr = p.communicate(input='passed_string')
>>> print stdout
passed_string


 类似资料:
  • 问题内容: 我想测量在Python程序中评估一块代码所花费的时间,可能在用户cpu时间,系统cpu时间和经过时间之间进行区分。 我知道该模块,但是我有许多自写函数,在设置过程中传递它们并不是很容易。 我宁愿有一些可以使用的东西: 用户和系统的CPU时间不是必需的(尽管我想测量它们),但是对于过去的时间,我希望能够执行类似的操作,而不是使用复杂的命令或模块。 问题答案: 要获取以秒为单位的经过时间,

  • 问题内容: 我试图弄清楚如何引用python文件,以便可以在Java GUI Jar中执行它。它必须是一个可移植的解决方案,因此使用绝对路径对我不起作用。我在下面列出了我的项目结构,并包括了有关如何尝试执行python脚本的代码。感谢您提供的任何帮助! 问题答案: 使用开头的文件路径意味着您要从文件系统的根目录开始。 您的代码为我工作,只需删除该斜杠即可: 放置错误文件没有显示错误的原因是因为此J

  • 我有一个EXE文件,< code>addOne.exe,它不断地从控制台上的用户获得一个整数输入(不是命令行参数),并将整数1输出到控制台上。示例输出如下所示: 我正在尝试编写一个java程序,它可以: 运行 EXE 使用 从 Java 程序持续获取用户输入,并将输入到 EXE 作为控制台输入 每当 EXE 将文本输出到控制台时,请从 Java 程序打印该文本 我可以使用以下方式运行EXE: 但我

  • 我试图用web表单做一个web调查应用程序。问题是我在调查创建部分有麻烦。

  • 问题内容: 如何从代码块中获取电流? 仅具有: 我可以用代替一个函数,但是有内置功能吗? 问题答案: 使用os.Getenv 从文档: Getenv检索由键命名的环境变量的值。它返回值,如果不存在该变量,则该值为空。 例: Go 1.8+更新 Go 1.8具有通过go / build导出的默认GOPATH:

  • 问题内容: 这个问题已经在这里有了答案 : 探索和反编译python字节码[关闭] (6个答案) 7年前关闭。 假设我们有一个python字符串(不是文件,字符串,没有文件) 好?现在我们将字符串编译成一段python字节码 现在的问题是:假设我不知道TheString(代表原始字符串对象的字符串),我怎么能从Binary获得? 很快:与compile()相反的函数是什么? 问题答案: 没有源代码