在 Java 桌面应用程序中使用 Firebase Admin(使用 Eclipse)

Using Firebase Admin in a Java desktop application (using Eclipse)

我想在我的 java 应用程序中使用 firebase admin。在网站上它说我可以通过 gradle 或 maven 添加它。但我不想那样做。相反,我从 Maven 中央存储库网站下载了 jar 文件,并将其作为库添加到我的项目中。我添加了 firebase 指南部分所述的代码和 运行 应用程序,我得到以下输出;

Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONException
    at error.myclass.main(myclass.java:17)
Caused by: java.lang.ClassNotFoundException: org.json.JSONException
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 1 more

所以我尝试添加库来解决问题,但每次我 运行 应用程序时,我都会遇到另一个错误。这些是我目前添加的库:

com.google.guava_1.6.0.jar
firebase-admin-4.0.3.jar
google-api-client-1.4.1-beta.jar
google-api-client-gson-1.22.0.jar
google-api-java-client-ext.jar
google-http-client-1.16.0-rc.jar
java-json.jar

现在我得到的唯一错误是:

Exception in thread "main" java.lang.NoSuchMethodError: com.google.api.client.json.gson.GsonFactory.getDefaultInstance()Lcom/google/api/client/json/gson/GsonFactory;
    at com.google.firebase.FirebaseOptions$Builder.setServiceAccount(FirebaseOptions.java:76)
    at MyClass.cool.main(cool.java:18)

我已经正确添加了所有库,所以我不明白为什么这不起作用。所以我的问题是如何在不使用 gradle 或 maven 的情况下成功地将 firebase admin 添加到 eclipse 中的 java 项目。

在我的例子中,JSON-java-1.4.jar 似乎可以代替 java-json.jar。 您可以 git 从 JSON-java in GitHub 克隆。

我最终学会了如何使用 Maven,当您了解如何正确设置项目并访问 pom.xml 文件时,这实际上很简单。当我导出项目(带有库)时,所有必需的 jar 都在我在 dropbox 上链接的文件夹中。

Link: Dropbox - Firebase Admin Jars (August 2017)

图书馆名称:

  • commons-codec-1.3.jar
  • commons-logging-1.1.1.jar
  • firebase-admin-5.2.0.jar
  • google-api-client-1.22.0.jar
  • google-api-client-gson-1.22.0.jar
  • google-http-client-1.22.0.jar
  • google-http-client-gson-1.22.0.jar
  • google-http-client-jackson2-1.22.0.jar
  • google-oauth-client-1.22.0.jar
  • gson-2.1.jar
  • 番石榴-20.0.jar
  • httpclient-4.0.1.jar
  • httpcore-4.0.1.jar
  • jackson-core-2.1.3.jar
  • json-20160810.jar
  • jsr305-1.3.9.jar

请注意,链接的文件不太可能更新,因此我建议使用 Maven,它会根据 pom.xml 文件中的版本号下载所有正确的库。