启动Scala解释器时出现"Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar"。

51

在 Ubuntu 14.04 中运行 Scala 解释器时,我会看到以下消息作为第一行打印出来:

Picked up JAVA_TOOL_OPTIONS: -javaagent:/usr/share/java/jayatanaag.jar 

接着是熟悉的“欢迎使用Scala”信息。

我有点担心,因为在运行Scala时我从未见过这个 - 这意味着什么,它是否危险等等?

显然,环境变量$JAVA_TOOL_OPTIONS被设置为-javaagent:/usr/share/java/jayatanaag.jar - 我没有设置它,但是是谁设置的以及为什么?我能安全地取消设置它吗?

附加信息:

  • 最近安装了安卓工作室
  • JAR名称中的“ayatana”一词可能指向Ubuntu的项目Ayatana

1
这个问题已经在Ubuntu上报告了一个错误:https://bugs.launchpad.net/ubuntu/+source/jayatana/+bug/1441487 - Stephen Ostermiller
1
这实际上与jayatanaag本身无关,问题在于JVM坚持打印JAVA_TOOL_OPTIONS(如果有设置)。 如果未设置环境变量,则不会打印任何内容。 将其设置为export JAVA_TOOL_OPTIONS = -DFOOBAR =“ HelloWorld”,然后您将得到该消息。 - michael
7个回答

43

您可以通过取消设置JAVA_TOOL_OPTIONS来仅针对当前的shell会话禁用jayatana:

unset JAVA_TOOL_OPTIONS
unset JAVA_TOOL_OPTIONS

这样它仍将启用需要它的应用程序。


这个在哪里写?是在我的终端里吗? - Vishal Patel
是的,在启动应用程序之前或在启动脚本中,请在您的终端中输入。 - Kim Stebel
先生,当这个错误被生成时,我的应用程序仍然上传到了Play商店。它并没有影响到Play商店。所以请问您这个错误的意思是什么,抱歉我的英语不好 :( - Vishal Patel

29

如果安装了jayatana,就可以允许Eclipse中的隐藏全局菜单与Unity配合使用:

sudo add-apt-repository ppa:danjaredg/jayatana
sudo apt-get update
sudo apt-get install jayatana

将JAR文件放入/usr/share/java/文件夹中,这个文件夹在JVM启动时会被回显。

如果您删除了这个软件,您将看不到这条消息:

sudo apt-get remove jayatana

您可能需要删除:

/usr/share/upstart/sessions/jayatana.conf 

重新启动会话,以便不设置环境变量JAVA_TOOL_OPTIONS


4
sudo apt-get install jayatana” - 你的意思是卸载吗?有没有一种方法可以抑制这个消息,但同时保留软件? - corazza
1
我不想删除jayatana,将来会有什么问题吗? - Saeed Zarinfam
3
建议移动一个可能有好处的安装程序,但不说为什么或可能会产生什么结果是令人担忧的。我宁愿保留提示而不失去可能重要的功能。你有没有想过明目张胆地删除这个软件可能会产生什么后果? - L. D. James
3
如果你移除jayatana,基于Java Swing的应用程序(至少包括Eclipse和Intellij)的菜单将会移回到应用程序窗口内。 - Caballero
@Caballero 感谢您的回复。 我正在运行的应用程序/Java程序完全是基于文本的。 没有安装或涉及gui。 因此,在这种情况下,Swing与之无关。 您的回答并没有很清楚地表明卸载/删除jayatana会对应用程序产生什么影响或有什么好处。 到目前为止,我看到它被引用为提醒,并建议将其删除。 但我仍在寻找它可能具有的任何好处以及如果将其删除可能会失去什么。 我会把我发现的带回到这个答案中。 如果有人知道,请提供意见,感谢! - L. D. James
显示剩余3条评论

6

这是因为在Ubuntu 15.04中添加了Jayatana,以启用Java Swing应用程序的全局菜单。您可以通过在终端中输入以下命令来安全地删除此消息。此命令将删除Jayatana的自动启动配置。

sudo rm /usr/share/upstart/sessions/jayatana.conf

然而,移除此选项将禁用Java Swing应用程序(如Netbeans、IntelliJ IDEA)的全局菜单支持。我在这篇文章中分享了我的解决方案,可以抑制消息但不会失去全局菜单:Java 应用程序的全局菜单支持


2
在Windows系统中,设置JAVA_TOOL_OPTIONS=。将其设置为空值将从环境中删除它。

2

如果您正在使用Windows操作系统,请前往环境变量并删除或设置为空变量JAVA_TOOL_OPTIONS。


1

对于那些在使用Groovy脚本时遇到此错误,并且正在使用另一个控制台(如Git Bash)的人,请将变量名JAVA_TOOL_OPTIONS更改为JAVA_OPTS


0

如果您不想卸载任何东西,可以从终端创建密钥库:

keytool -keystore clientkeystore -genkey -alias anyalias

(你应该在项目文件夹中创建它)

然后在Android Studio中点击Build->Generate Signed APK并选择已创建的密钥库。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接