看板 java 關於我們 聯絡資訊
請問一下 Maven專案資料夾結構如下: Project ├src/main/java │ └ com.abc.xyz │ └Auth.java └src/main/resources └certs └credential.p12 Auth.java裡有段程式碼用來驗證: ===================================================================== GoogleCredential credential = new GoogleCredential.Builder() .setTransport(httpTransport) .setJsonFactory(JSON_FACTORY) .setServiceAccountId(SERVICE_ACCOUNT_EMAIL) .setServiceAccountScopes(Collections.singleton( CalendarScopes.CALENDAR_READONLY)) .setServiceAccountPrivateKeyFromP12File(new File("credential.p12")) .setServiceAccountUser(SERVICE_ACCOUNT_USER) .build(); ===================================================================== 該專案檔的jar部署到Server上後 會出現找不到credential檔案的錯誤訊息 想請問credential檔案應該放在專案或server哪裡才能被找到? 又該怎麼指定路徑呢? -- 你的行動或許沒有意義,但你還是非做不可。 這不是為了改變世界,而是為了讓你成為不會被世界改變的那個人. – 甘地(Mahatma Gandhi) -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 59.124.165.65 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1504513198.A.C66.html
ssccg: resources裡面的用Class.getResource,路徑是從resources目 09/04 16:36
ssccg: 錄下開始的絕對路徑或相對於該Class package的路徑 09/04 16:36
ssccg: 你的可用getClass().getResource("/certs/credential.p12") 09/04 16:38
ssccg: 你用的new File傳相對路徑,是相對於java的執行路徑 09/04 16:41
ssccg: 放在resources中的檔案會包在jar檔裡,不會直接在檔案系統 09/04 16:41
qazsd: File file = new File(classLoader.getResource("cert.p12" 09/04 17:08
qazsd: ).getFile()); 09/04 17:08
qazsd: String filePath = file.getAbsolutePath(); 09/04 17:09
qazsd: 上面那樣對嗎?在本機跑跟server跑都通用嗎? 09/04 17:10
ssccg: 對 09/04 18:31