我正在创建一个Windows程序,到目前为止有一个.bat文件调用.pyw文件,我需要Java和C ++的函数。我怎么能这样做?(我不介意创建一个新的批处理文件或python文件,我已经有了C ++部分的头文件和我的java组件的.jar文件。(对于Java,我使用Eclipse Java Mars,它是Java 8u101))谢谢!!!
答案 0 :(得分:3)
对于C ++来说这很简单:你必须用函数编译一个库,用Python导入它,然后......调用它! Python在标准库中有一个强大的ctypes模块来处理这类任务。
以下是从假设print()
加载libc.dll
函数的示例。
from ctypes import *
libc = cdll.LoadLibrary("libc.dll")
>>> print(libc.time(None))
1150640792
这里介绍了从Python调用Java:How to call a java function from python/numpy?
答案 1 :(得分:1)
你可以加载C ++函数并从Python中执行它,就像他在答案中解释的BasicWolf一样。对于Java,Jython可能是一个很好的方法。但是有一个问题 - 你需要依赖于Jython,它不是最新版本的Python。您也将面临与不同库的兼容性问题。
我建议编译C ++和Java函数,以便从中创建单独的二进制文件。然后从Python中执行这些二进制文件,将参数作为命令行参数传递。这样你就可以继续使用CPython了。您可以与使用任何语言编写的程序进行互操作。