BerkeleyDB 啓動報錯com.sleepycat.je.DatabaseException: The Environment directory is not writable問題

背景:這個是我在寫一箇中間件的時候發現需要用到文件存儲數據方面的東西,因爲自己寫的達不到那個量級的需求,然後去stackoverflow上就看到了推薦 BerkeleyDB 這個文件數據庫

 

下面是我的測試代碼:


	public static void main(String[] args) throws Exception {
		EnvironmentConfig environmentConfig = new EnvironmentConfig();
		environmentConfig.setAllowCreate(true);
		environmentConfig.setReadOnly(false);
		environmentConfig.setTransactional(true);
		Environment environment = new Environment(new File("D:\\AA.txt"),environmentConfig);
		
		System.out.println("Env Config: " + environment.getConfig());  
		
	}
		  

 啓動之後報錯信息爲
 

com.sleepycat.je.DatabaseException: The Environment directory is not writable, but the Environment was opened for read-write access.

這個可能國內使用的人不多吧,在國內的搜索引擎都沒找到原因,想了想還是去官網文檔中心找吧,地址(https://apps.state.or.us/tech/berkeleyDB/java/com/sleepycat/db/Environment.html#Environment(java.io.File,%20com.sleepycat.db.EnvironmentConfig

結果看到抒寫格式必須爲目錄,而我寫的是文件,:

把 Environment 處改成目錄就行了,如下代碼: 


	public static void main(String[] args) throws Exception {
		EnvironmentConfig environmentConfig = new EnvironmentConfig();
		environmentConfig.setAllowCreate(true);
		environmentConfig.setReadOnly(false);
		environmentConfig.setTransactional(true);
		Environment environment = new Environment(new File("D:\\B_02_BerkeleyDB"),environmentConfig);
		
		System.out.println("Env Config: " + environment.getConfig());  
		
		  
	}

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章