Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
FileChannel.tryLock导致java.io.IOException:函数不正确_Java_Windows 7_Io - Fatal编程技术网

FileChannel.tryLock导致java.io.IOException:函数不正确

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)

这可能是什么原因造成的?我编写了一个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)
        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位数字)和任何扩展名的文件名都是非法的。>:(


请参见

只是一个暗箱操作,但是如果您可以使用相同的规格在您的机器上运行它,可能他的机器上存在某种文件损坏?您一定成功创建了该文件。当您尝试锁定它时,出现了问题。