我是Java的新手(尤其是Maven),我正在尝试使用Google Firebase Admin SDK编译JavaFX应用程序。
我正在使用IntelliJ IDEA中的Maven构建,虽然我的应用程序可以毫不费力地从resources
目录(特别是PNG图像)中提取其他文件,但是当我尝试使用Google提供的Firebase初始化代码段,我收到错误:Exception in Application start method... Caused by: java.io.FileNotFoundException: [database JSON name].json (The system cannot find the file specified)
我在主类中有以下代码,直接从Firebase SDK文档中复制。正如您所知,方括号中的片段是占位符名称。 IntelliJ控制台指向的行是下面的第一行,从“FileInputStream
开始。”
FileInputStream serviceAccount =
new FileInputStream("[database JSON name].json");
FirebaseOptions options = new FirebaseOptions.Builder()
.setCredential(FirebaseCredentials.fromCertificate(serviceAccount))
.setDatabaseUrl("https://[database name].firebaseio.com")
.build();
FirebaseApp.initializeApp(options);
在我的pom.xml
文件中,我有以下依赖项:
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>main</scope>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20090211</version>
</dependency>
<dependency>
<groupId>com.google.firebase</groupId>
<artifactId>firebase-admin</artifactId>
<version>5.6.0</version>
</dependency>
</dependencies>
鉴于Maven正在提取的所有其他资源都在resources
文件夹中并且被调用得很好,我很困惑为什么Maven无法以类似的方式找到被调用的JSON文件来自同一个文件夹。如果有人能帮我指出正确的方向,我真的很感激。
注意:我已尝试在pom.xml
中使用和不使用JSON依赖项构建。无论如何,我不确定我是否有正确的版本。另外,我已经尝试将JSON文件移动到源代码目录并将引用重定向到新位置,但无济于事。