【问题标题】:Java program runs on one computer but not the otherJava 程序在一台计算机上运行,​​但不在另一台计算机上运行
【发布时间】:2014-01-21 19:25:15
【问题描述】:

我正在编写一个程序,它使用 Twitter4J API 来读取和响应 Twitter 上的推文。到目前为止,该程序似乎在 Windows 7 Home Premium 64 位和 Arch Linux 64 位的 Acer Aspire 5734Z 上完美运行。但是,当我在运行 Raspbian 的 Raspberry Pi 上运行相同的程序时,会遇到以下错误:

Jan 04, 2014 12:34:16 AM twitter4j.TwitterStreamImpl info
INFO: java.security.NoSuchAlgorithmException: Error constructing implementation (algorithm: Default, provider: SunJSSE, class: sun.security.ssl.SSLContextImpl$DefaultSSLContext)
Jan 04, 2014 12:34:16 AM twitter4j.TwitterStreamImpl info
INFO: Waiting for 250 milliseconds

编辑:等等,奇怪的时间戳,让我检查一下我的 Raspberry Pi 的时间设置是否正确。

编辑:不,这并没有解决问题。

【问题讨论】:

  • 你验证过你写的程序和pi上的jre是一样的吗?如果不需要更改其中之一。
  • 它们都是 1.7 但是我注意到我的笔记本电脑(Arch)是 1.7.0_45 而 Pi 是 1.7.0_25
  • 对于某些加密算法,Java 依赖于平台的底层支持,如果不存在,那么你就没有运气了。
  • 那么,你的意思是什么?需要注意的是,有一次我确实有另一个使用 twitter4j 的程序在这个 pi 上运行,但是我已经重新安装了 Raspbian 并且我以不同的更有效的方式使用 twitter4j,但我认为它的身份验证方式相同。 IDK 还有什么会改变的。
  • 好吧,那应该没有任何影响。我会看看@HotLicks 说了什么。可能有一个库,您可以在 pi 上下载以提供帮助。

标签: java twitter4j


【解决方案1】:

我写的一个应用程序也有类似的问题。它不适用于 oldrr java 版本 25,但适用于 45 并且只需更新即可解决问题。也许这也将在这里解决它,因为这些版本之间有些事情发生了变化。

【讨论】:

  • 很可能就是这样。问题是 Raspbian 存储库似乎没有 45 个但只有 25 个。:(
  • 所以我做了一点谷歌搜索,发现这行代码:sudo apt-get update && sudo apt-get install oracle-java7-jdk - 也许这会更新它?
  • 我认为它使用的是 openjdk 而不是 Oracle 的。所以现在我只需要弄清楚如何切换它。
  • stackoverflow.com/questions/10401776/… 成功!它只有 40 而不是 45,但它仍然有效! :D
【解决方案2】:

这很可能是一个设置问题,虽然它可能是一个缺少的库,但我自己没有看到这个问题,所以不能为你做太多,但我确实做了一些谷歌搜索,发现这里回答了几个类似的问题这可能会有所帮助:

Java and SSL - java.security.NoSuchAlgorithmException

Using a self generated key to test java ssl app

【讨论】:

  • 是的,第一个链接解释了某些情况下消息可能是虚假的——由于其他问题。
  • 我不知道这是否重要,但我没有使用我自己的任何身份验证代码,而是使用 twitter4j 内置的。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-03-30
  • 2020-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-19
相关资源
最近更新 更多