FileChannel.tryLock导致java.io.IOException:函数不正确
这可能是什么原因造成的?我编写了一个Java程序,在我的Windows 7 PC上用Java 6u33和Java 7u67可以正常工作,但在同事的PC上,在Windows 7下运行Java 7u67时,我得到一个错误:FileChannel.tryLock导致java.io.IOException:函数不正确,java,windows-7,io,Java,Windows 7,Io,这可能是什么原因造成的?我编写了一个Java程序,在我的Windows 7 PC上用Java 6u33和Java 7u67可以正常工作,但在同事的PC上,在Windows 7下运行Java 7u67时,我得到一个错误: Exception in thread "main" java.lang.Error: java.io.IOException: Incorrect function at sun.nio.ch.FileKey.create(Unknown Source)
Exception in thread "main" java.lang.Error: java.io.IOException: Incorrect function
at sun.nio.ch.FileKey.create(Unknown Source)
at sun.nio.ch.SharedFileLockTable.<init>(Unknown Source)
at sun.nio.ch.FileLockTable.newSharedFileLockTable(Unknown Source)
at sun.nio.ch.FileChannelImpl.fileLockTable(Unknown Source)
at sun.nio.ch.FileChannelImpl.tryLock(Unknown Source)
at java.nio.channels.FileChannel.tryLock(Unknown Source)
线程“main”java.lang中的异常。错误:java.io.IOException:函数不正确
位于sun.nio.ch.FileKey.create(未知源)
位于sun.nio.ch.SharedFileLockTable。(来源未知)
位于sun.nio.ch.FileLockTable.newSharedFileLockTable(未知源)
位于sun.nio.ch.FileChannelImpl.fileLockTable(未知源)
位于sun.nio.ch.FileChannelImpl.tryLock(未知源)
位于java.nio.channels.FileChannel.tryLock(未知源)
我不知道到底是什么导致了这个错误,以及如何修复它
嗯,显然这是Java包装了一个底层操作系统错误()。任何导致Windows中“功能不正确”错误的线索?Ugh。它实际上与Java无关,而与Windows下的保留文件名有关 我试图创建一个格式为
COMnn.LOCK
的文件,在我的电脑上,我使用的是COM13.LOCK(Windows下的合法文件名),但在我同事的电脑上是COM5.LOCK,这显然是Windows下的非法文件名;任何带有COMn(其中n是任何1位数字)和任何扩展名的文件名都是非法的。>:(
请参见只是一个暗箱操作,但是如果您可以使用相同的规格在您的机器上运行它,可能他的机器上存在某种文件损坏?您一定成功创建了该文件。当您尝试锁定它时,出现了问题。