Java 导致FileKey出现IOException的FileHandler
我从PLSQL Dev调用一个java类。My Logger.java使用字符串C:\Logs\mylog.TXT调用FileHandlerJava 导致FileKey出现IOException的FileHandler,java,ioexception,filehandler,Java,Ioexception,Filehandler,我从PLSQL Dev调用一个java类。My Logger.java使用字符串C:\Logs\mylog.TXT调用FileHandler fileHndlr = new FileHandler(logFileName, false); 结果是: Exception in thread "Root Thread" java.lang.Error: java.io.IOException: sjonfile_fileinfo fais to get fileinfo at sun.ni
fileHndlr = new FileHandler(logFileName, false);
结果是:
Exception in thread "Root Thread" java.lang.Error: java.io.IOException: sjonfile_fileinfo fais to get fileinfo
at sun.nio.ch.FileKey.create(FileKey.java:41)
at sun.nio.ch.FileChannelImpl$SharedFileLockTable.<init>(FileChannelImpl.java:1037)
at sun.nio.ch.FileChannelImpl.fileLockTable(FileChannelImpl.java:806)
at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:867)
at java.nio.channels.FileChannel.tryLock(FileChannel.java:962)
at java.util.logging.FileHandler.openFiles(FileHandler.java:394)
at java.util.logging.FileHandler.<init>(FileHandler.java:268)
at xxx.logger.Logger.logSetup(Logger.java:194)
Caused by: java.io.IOException: sjonfile_fileinfo fais to get fileinfo
at sun.nio.ch.FileKey.init(Native Method)
at sun.nio.ch.FileKey.create(FileKey.java:39)
... 9 more
2 CreateFile操作时出现共享冲突错误
Date & Time: 2015.03.02. 9:23:20
Event Class: File System
Operation: CreateFile
Result: SHARING VIOLATION
Path: C:\Logs\...\filename.lck
TID: 2708
Duration: 0.0000284
Desired Access: Read Attributes, Delete
Disposition: Open
Options: Non-Directory File, Open Reparse Point
Attributes: n/a
ShareMode: Read, Write, Delete
AllocationSize: n/a
需要使用sysdba用户执行以下操作:
GRANT READ,WRITE ON DIRECTORY userDirectory TO userSchema;
Execute dbms_java.grant_permission('userSchema', 'java.io.FilePermission', 'userDirectory/*', 'read,write,execute,delete');
我假设堆栈转储仍在继续-生成此消息时会发生什么:sjonfile\u fileinfo fais to get fileinfo?我在jdk:c:\Java\jdk1.7.0\u 71\jre\lib\rt.jar\sun\nio\ch\FileKey.class中找到了sun.nio.ch.FileKey.class,但尚未找到字符串sjonfile\u fileinfo。知道在哪里搜索吗?堆栈转储会这样结束吗?没别的了?
GRANT READ,WRITE ON DIRECTORY userDirectory TO userSchema;
Execute dbms_java.grant_permission('userSchema', 'java.io.FilePermission', 'userDirectory/*', 'read,write,execute,delete');