我终于完成了我的第一个真正的程序,并一直在努力对其进行一些收尾工作。最后的修饰之一就是用图标和所有东西将其包装起来。问题是,该图标仅在我从终端运行 jar 时显示。例如,当我双击 jar 来运行它时,我只看到杜克大学吉祥物。我正在激活相同的 jar 文件,但以不同的方式并得到不同的结果。
示例 1(终端)。 请注意图标如何显示在我的托盘中。
示例 2(双击)。 请注意该图标没有显示在我的托盘中。
有谁知道如何解决这个问题或者问题是什么?
非常感谢。
编辑1:代码
URL iconURL = getClass().getResource("notebook_builder_icon.gif");
ImageIcon icon = new ImageIcon(iconURL);
frame.setIconImage(icon.getImage());
最佳答案
terminal
之间的主要区别和double click
是执行位置的上下文。当从 terminal
运行时,执行上下文将是您执行 java 命令的目录。双击 Jar 时,上下文将取决于系统。您可以使用System.out.println(new File(".").getCanonicalPath());
输出路径。
在你的 terminal
中,您的上下文是 ~/Programming/java
,而doublle click
使上下文成为 .jar
的当前文件夹文件。
关于java - 除非程序从终端运行,否则 JFrame 框架图标不会显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24279983/