Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學

解決 Tomcat 在 Vista 下「拒絕存取」無法啟動:權限問題與部署路徑建議

編輯:Windows Vista 常見問題解答

Tomcat 6 在 Vista C: 槽安裝時,啟動報錯 FileNotFoundException: tomcat-users.xml.new (拒絕存取),導致 UserDatabase 元件載入失敗、Server 啟動中止。根因是 Vista UAC 保護 Program Files 目錄寫入權限。

錯誤堆疊關鍵點

Java.io.FileNotFoundException: C:\Program Files\tomcat6\conf\tomcat-users.XML.new (拒絕存取。)
at org.apache.catalina.users.MemoryUserDatabase.save(...)
...
LifecycleException: No UserDatabase component found under key UserDatabase

Tomcat 啟動嘗試寫入 tomcat-users.xml.new (暫存檔) 以更新使用者資料庫,但無寫入權限而失敗。

解決方案

方案一:安裝至非系統槽 (最推薦)

將 Tomcat 安裝至 D:\Tomcat6 或其他非 Program Files 目錄,完整擁有寫入權限,零設定即可運行。

方案二:授予寫入權限 (不建議生產環境)

  1. 右鍵 C:\Program Files\tomcat6 →「內容」→「安全性」→「編輯」。
  2. 「新增」→ 輸入 Users → 核取「寫入」權限。
  3. 或以管理員身分執行 tomcat6.exe / startup.bat (每次需提權)。

方案三:修改 catalina.base 分離可寫入目錄

設定環境變數 CATALINA_BASE=D:\Tomcat6_Instance,將 conf/、logs/、webapps/、work/、temp/ 複製至該目錄,CATALINA_HOME 仍指向 Program Files 只讀安裝目錄。

延伸:Windows 7 同樣適用

Win7 繼承 Vista UAC 機制,Program Files 同樣受寫入保護,上述方案全適用。

最佳實務建議

  • 生產環境**一律安裝於非系統槽**,避免權限、備份、遷移諸多問題。
  • 以獨立服務帳號 (非 Administrator) 執行 Tomcat 服務,配合最小權限原則。
  • 使用 tomcat6w.exe (GUI) 或 service.bat install 註冊為 Windows 服務,設定「登入」分頁指定服務帳號。
Copyright © Windows教程網 All Rights Reserved