如何在64位Linux上安装j2sdk 1.4.2?

4

我在64位linux(Ubuntu 10.04)上安装java j2sdk 1.4.2遇到了问题。有人解决过吗?

uname -a

2.6.32-25-generic #44-Ubuntu SMP Fri Sep 17 20:05:27 UTC 2010 x86_64 GNU/Linux

我运行了一个自解压文件

sudo ./j2sdk-1_4_2_02-linux-i586.bin

但是我得到以下错误信息:

tail: cannot open `+473' for reading: No such file or directory

Oracle论坛没有答案。

4个回答

5

问题在于Ubuntu的tail命令不支持'tail +<>'语法。你需要编辑文件,注意不要破坏第473行后面的内容,并将tail命令替换为'tail -n +473'。这样就可以解决这个问题了。


很高兴它起作用了。编写需要在各种版本的Linux上运行的脚本时,这是其中一个问题 - 并非所有版本都支持相同的命令标志。Solaris支持使用“tail +<line>”从文件中的特定行开始直到结尾,并且我几乎可以确定我在旧版的Linux上使用了那种形式的tail(通过在执行tail +<number>之前设置_POSIX2_VERSION=199209,可以以这种方式工作)。 - Anya Shenanigans
1
冒昧地说,我最初尝试通过编辑文件来进行替换,但显然这样会破坏我的文件,所以我使用了以下命令来进行替换:sed -i 's/tail +/tail -n +/' j2sdk-1_4_2-linux-i586.bin - Dominique
@Dominique 如果它能工作,那就更好了 - 这比一些手动编辑要容易得多。我会避免使用 sed -i 来覆盖原始文件,并将其发送到一个新文件中,这样如果 sed 一开始没有起作用,你仍然有原始文件。 - Anya Shenanigans
我手动编辑了文件,导致校验和失败。@Dominique的sed解决方案非常有效! - Kevin

0

在尝试手动安装软件之前,您应始终首选Ubuntu的软件包管理系统。

您想安装过时的Java版本1.4.2有什么原因吗?最好安装最新的Java版本,即版本6。请注意,Sun Java 6向后兼容1.4.2;任何在1.4.2上运行的内容也将在Java 6上运行。

还要注意,您可以使用“javac -target 1.4”确保生成的类文件与1.4 JVM兼容。

如果您真的有特殊原因要安装Sun Java 1.4.2:Ubuntu可以使用.deb(Debian)软件包。


是的,我确实需要安装过时的Java版本来修复一个现有的程序。而且它必须在1.4.2中编译。 - banterCZ
当然,我从存储库中安装了JDK 5和6。但是1.4.2显然不在那里。 - banterCZ
2
你可以使用编译器标志来指示您要将代码编译为Java 4。只需执行:javac -source 1.4。但在我看来,这不是安装过时JDK的理由。 - Jeroen Rosenberg
可能是 -target,而不是 -source。 - Thilo
这可能还不够,他可能需要旧的--bootclasspath和--extdirs。不是100%确定。 - Thilo
显示剩余2条评论

0
尝试使用“chmod a+x…” 这个软件包是64位操作系统用的吗?在32位操作系统上运行它怎么样? 当你运行“sudo ./j2sdk-1_4_2_02-linux-i586.bin”时,你真的在同一个路径下吗?尝试使用绝对路径。 显然,@Jeroen Rosenberg的方法更好。

是的,我知道“chmod a+x”是必须的。感谢您提供完整路径的建议,但它也无法解决问题。不幸的是,目前对于我来说更改为32位操作系统并不适用(或者至少过于复杂)。 - banterCZ

0

你也可以暂时用bash脚本替换tail命令二进制文件,或者使用别名等方式,以你想要的方式处理参数 :)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接