相关疑难解决方法(0)

如何禁用Java安全管理器?

有没有办法完全禁用Java安全管理器?

我正在试验db4o的源代码.它使用反射来持久化对象,并且安全管理器似乎不允许反射来读写私有或受保护的字段.

我的代码:

public static void main(String[] args) throws IOException {
    System.out.println("start");
    new File( DB_FILE_NAME ).delete();
    ObjectContainer container = Db4o.openFile( DB_FILE_NAME );
    String ob = new String( "test" );
    container.store( ob );
    ObjectSet result = container.queryByExample( String.class );
    System.out.println( "retrieved (" + result.size() + "):" );
    while( result.hasNext() ) {
        System.out.println( result.next() );
    }
    container.close();
    System.out.println("finish");
}
Run Code Online (Sandbox Code Playgroud)

输出:

start
[db4o 7.4.68.12069   2009-04-18 00:21:30] 
 AccessibleObject#setAccessible() is not available. Private fields can not be stored.
retrieved (0):
finish


这个帖子建议修改java.policy文件以允许反射但它似乎对我不起作用.

我正在使用参数启动JVM,
-Djava.security.manager …

java security reflection db4o

16
推荐指数
2
解决办法
3万
查看次数

标签 统计

db4o ×1

java ×1

reflection ×1

security ×1