Tag: linux kernel

为什么JDK NIO使用这么多的anon_inode文件描述符?

我正在使用Sun的JDK 1.6.0_26和NIO(使用Netty),在lsof中我看到数百个文件描述符是anon_inode : $ lsof -np 11225 | fgrep -w anon_inode java 11225 nobody 57u 0000 0,9 0 1386 anon_inode java 11225 nobody 61u 0000 0,9 0 1386 anon_inode java 11225 nobody 65u 0000 0,9 0 1386 anon_inode java 11225 nobody 69u 0000 0,9 0 1386 anon_inode java 11225 nobody 73u 0000 0,9 0 1386 […]

Linux上的Java Runtime.exec()参数

好的,这就是问题所在:我有3个类MyClass1和MyClass2以及ExecClass。 我转到我的命令提示符并执行此操作: $java MyClass1 -exec “java MyClass2 arg1 arg2” 这很完美。 现在在ExecClass中我有以下行: Runtime.getRuntime().exec(“java MyClass1 -exec \”java MyClass2 arg1 arg2\””); 问题是如果你打印第二个字符串与第一个字符串完全相同,但是当我的ExecClass运行它时,MyClass1抱怨:无法识别的参数arg1并失败。 经过一些调试后,我发现在第一种情况下,当我直接从终端调用时,引号中的整个字符串是1个参数(arg [1]),其中在第二种情况下,arg.length = 5和它基本上将它们分开……因为我有些未知的理由。 我只需要知道一个工作场所,如果有人知道,也就是我的Runtime.exec()工作。 PS:在我的Windows机器上,这样的问题不会仅发生在Linux上。 这是一个ubuntu destrution Kernel:2.6.32-279.14.1.el6.x86_64。