我有一个为旧版本linux构建的二进制文件,当我将二进制文件放到一个较新的linux中并试图运行它时,它会告诉我们“没有这样的文件或目录”错误。
我搜索了一下,发现这是关于不正确的图书馆链接。我在这个二进制文件上使用了ldd,所显示的输出如下:
./test.exe: /lib/libpthread.so.0: version 'GLIBC_2.1' not found (required by ./test.exe) ./test.exe: /lib/libpthread.so.0: version 'GLIBC_2.0' not found (require
我不确定这是否可能,我想从我的java程序的命令行运行一个Windows应用程序--类似于
Process process = Runtime.getRunTime().exec("myapp.exe --params");
问题是,我想运行java应用程序,它从OS或Linux环境中调用exe。
我想知道是否有人做过这件事,或对如何做到这一点有任何建议?谢谢
编辑:谢谢你的回复。我确实想补充一点,我可能不想使用红酒来运行exe,并且可能希望在exe文件周围创建某种类型的包装器,以便直接从java调用dll中的函数。我以前没做过这件事,我想知道在这方面是否有任何建议。
在我的Arch机器上,我安装了Mono C#编译器5.20.1.0版本。今天,我在C#中创建了一个简单的hello world程序,如下所示:
using System;
public class Program
{
public static int Main()
{
Console.WriteLine("Hello world of C# !");
Console.WriteLine();
return 0;
}
}
我去了bash终端,并将上面的程序编译为
$ mcs t.cs
这在工作目录