在java中创建硬链接的操作系统
目前我通过Runtime.exec()
使用“ln
”命令。它很好用。唯一的问题是,为了实现这个fork,我们需要两倍于应用程序的堆空间。我的应用程序是一个64位应用程序,堆大小约为10Gig,因此其交换空间不足。我找不到任何可以修复此问题的配置
我也不想用JNI来做同样的事情。 我还听说这个设施很快将在Java7中提供
你可以在下面搜索框中键入要查询的问题!
目前我通过Runtime.exec()
使用“ln
”命令。它很好用。唯一的问题是,为了实现这个fork,我们需要两倍于应用程序的堆空间。我的应用程序是一个64位应用程序,堆大小约为10Gig,因此其交换空间不足。我找不到任何可以修复此问题的配置
我也不想用JNI来做同样的事情。 我还听说这个设施很快将在Java7中提供
# 1 楼答案
您可以使用Windows而不是UNIX?;)我相信JDK7将使用类似于CreateProcess的调用,而不是可用的fork
一个更实际的解决方案是在开始后不久创建一个新的子进程。如果您使用的是10g堆,那么另一个小型Java进程可能不会那么糟糕。将该进程(通过使用流)发送给exec
# 2 楼答案
你可以尝试用JNA代替JNI(JNA比JNI有一些明显的优势);是的,检查JSR 203
# 3 楼答案
在Java 7中使用createLink很容易:
# 4 楼答案
答案可以在OracleJava中阅读™ 教程Links, Symbolic or Otherwise
# 5 楼答案
JNA很容易做到这一点:
编译并运行