通过Python执行外部软件

2024-06-16 11:10:45 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个通过终端正常执行的Java程序。但是,当我尝试通过另一个python代码执行它时,更具体地说是通过操作系统()或子流程运行()函数,我得到以下错误:

Exception in thread "main" java.lang.UnsatisfiedLinkError: com.slytechs.library.NativeLibrary.dlopen(Ljava/lang/String;)J
at com.slytechs.library.NativeLibrary.dlopen(Native Method)
at com.slytechs.library.NativeLibrary.<init>(Unknown Source)
at com.slytechs.library.JNILibrary.<init>(Unknown Source)
at com.slytechs.library.JNILibrary.loadLibrary(Unknown Source)
at com.slytechs.library.JNILibrary.register(Unknown Source)
at com.slytechs.library.JNILibrary.register(Unknown Source)
at com.slytechs.library.JNILibrary.register(Unknown Source)
at org.jnetpcap.Pcap.<clinit>(Unknown Source)
at cic.cs.unb.ca.jnetpcap.PacketReader.config(PacketReader.java:58)
at cic.cs.unb.ca.jnetpcap.PacketReader.<init>(PacketReader.java:52)
at cic.cs.unb.ca.ifm.Cmd.readPcapFile(Cmd.java:128)
at cic.cs.unb.ca.ifm.Cmd.readPcapDir(Cmd.java:100)
at cic.cs.unb.ca.ifm.Cmd.main(Cmd.java:73)
TCP/IP Features were extracted to: /CICFlowMeter/bin/

为了执行java程序,我使用以下命令:

   subprocess.run( ["/home/user/PycharmProjects/untitled/CICFlowMeter/bin/cfm", "/home/user/PycharmProjects/untitled/CICFlowMeter/bin/", "/home/user/PycharmProjects/untitled/CICFlowMeter/bin/"])

java程序名为cfm,输入两个参数,特别是两个目录的路径。cfm是一种流量计:

https://github.com/ISCX/CICFlowMeter

根据上面GitHub页面提供的指令,为了执行cicflometer,我只需要安装libpcap dev库。你知道吗

有什么想法吗?你知道吗


Tags: cmdcomsourcelibraryjavacsatunknown