我的应用程序使用AWT,即使它内置的jar使用Swing。为什么?

时间:2014-07-23 20:17:56

标签: java macos swing awt .app

我有一个应用程序,我编译成一个可执行的jar文件,让我们说app.jar。当我运行它时,它看起来像一个原生的mac应用程序,看起来很容易让人联想到我对摇摆的有限知识。然后,我使用Java's appBundler按照列出的说明捆绑jar文件,然后突然启动相同的项目看起来像AWT应用程序(更模糊,更像素化)。

除此之外,jar文件将以工作目录作为父文件夹启动(如果它dist/app.jardist是工作目录),而应用程序将显示我的用户驱动器(~)作为工作目录。

下面是我正在捆绑的示例程序:

package test;

import java.io.File;

import javax.swing.JOptionPane;

public class Test{
  public static void main(String[] args) {
    javax.swing.SwingUtilities.invokeLater(new Runnable() {
        public void run() {
            JOptionPane.showMessageDialog(null, new File(".").getAbsolutePath());
        }
    });
  }
}

罐子看起来像摇摆,然后说" / Users / me / Documents / app / dist /."虽然该应用程序看起来像AWT并且说" / Users / me /."

切换的原因是什么?我更喜欢swing和jar文件的目录,但是我需要将它格式化为应用程序。

2 个答案:

答案 0 :(得分:1)

尝试强制使用"系统"外观和感觉...

public void run() {
    try {
        UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
    } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
        ex.printStackTrace();
    }
    //...

这应该确保它覆盖任何其他设置......

请查看How to Set the Look and Feel了解详情

答案 1 :(得分:0)

也许这对AppBuilder来说很奇怪。 您是否尝试使用jar命令构建jar?

http://docs.oracle.com/javase/tutorial/deployment/jar/build.html