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

时间:2016-12-18 18:22:23

标签: java eclipse firebase-admin

我想在我的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管理员添加到eclipse中的java项目中。

2 个答案:

答案 0 :(得分:1)

在我的例子中,JSON-java-1.4.jar似乎工作而不是java-json.jar。 你可以从JSON-java in GitHub git克隆。

答案 1 :(得分:1)

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

链接:Dropbox - Firebase Admin Jars (August 2017)

图书馆名称:

  • 公地编解码器-1.3.jar
  • 共享记录-1.1.1.jar
  • 火力管理员-5.2.0.jar
  • 谷歌-API的客户端 - 1.22.0.jar
  • 谷歌-API的客户端 - GSON-1.22.0.jar
  • 谷歌-HTTP-客户1.22.0.jar
  • 谷歌-HTTP-客户GSON-1.22.0.jar
  • 谷歌-HTTP-客户jackson2-1.22.0.jar
  • 谷歌OAuth的客户端 - 1.22.0.jar
  • GSON-2.1.jar
  • 番石榴20.0.jar
  • 的HttpClient-4.0.1.jar
  • 的HttpCore-4.0.1.jar
  • 杰克逊 - 芯 - 2.1.3.jar
  • JS​​ON-20160810.jar
  • jsr305-1.3.9.jar

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