不能执行二进制文件

不能执行二进制文件

我正在尝试在 Linux ubunto(版本 11.04)上安装 JasperReports Server 4.1 并收到以下消息:

-bash: ./jasperreports-server-cp-4.1.0-linux-x64-installer.run: cannot execute binary file

知道我应该做什么才能安装 Jasper 吗?

之前,我在Linux Red Hat上安装JasperReports Server 4.0没有任何问题。它与 Linux ubuntu 特别相关吗?


以下是命令uname和 的输出ls -al

uname -a

Linux 64-cncrclinrpts 2.6.38-11-generic-pae #48-Ubuntu SMP Fri Jul 29 20:51:21 UTC 2011 i686 i686 i386 GNU/Linux

ls -al jasperreports-server-cp-4.1.0-linux-x64-installer.run

-rwxr-xr-x 1 root root 329844862 2011-09-09 09:11 jasperreports-server-cp-4.1.0-linux-x64-installer.run

答案1

您正在尝试在 32 位系统上运行 64 位二进制文​​件。

您的uname -a指示您正在运行 32 位内核,并且您尝试运行的文件名给出了线索​​“x64”。运行file这个文件将为您提供整个故事。

你可能想要jasperreports-server-cp-4.1.0-linux-x86-installer.run

或者,您可以在 64 位 Linux 系统上运行安装程序。

答案2

这可能表明解释器不存在,尽管在我的系统上,我通过bash必须添加的一些额外魔法得到了不同的(更有用的)错误消息。

$ cat > test.sh <<EOF
#!/bin/nonexistent/sh
echo "Hi."
EOF
$ chmod u+x test.sh
$ ./test.sh
-bash: ./test.sh: /bin/nonexistent/sh: bad interpreter: No such file or directory

如果您了解更多有关此文件的信息,将会很有帮助:它说了什么file jasperreports-server-cp-4.1.0-linux-x64-installer.run?如果它说它是一个动态 elf 二进制文件,它ldd jasperreports-server-cp-4.1.0-linux-x64-installer.run说了什么?

答案3

chmod +x jasperreports-server-cp-4.1.0-linux-x64-installer.run

然后尝试再次运行它,如果它仍然不起作用,该文件的 ls -al 是什么。

答案4

你可以跑去strace ./jasperreports-server-cp-4.1.0-linux-x64-installer.run看看那里到底发生了什么。

相关内容