Celeb Glow
news | February 08, 2026

Why doesn't NetBeans find package com.apple.eawt when doing Clean and Build?

My NetBeans IDE responds "package com.apple.eawt doesn’t exist" when I select Clean and Build Project but works fine when I select Run Project.

I have a Java 8 application targeting OS X. To trigger the Window Listener when the user selects Quit from the menu I have the following code:

import com.apple.eawt.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class AppleUI extends JFrame {
public AppleUI() { JPanel panel = new JPanel(); panel.setPreferredSize(new Dimension(400, 200)); this.add(panel); Application.getApplication().setQuitStrategy(QuitStrategy.CLOSE_ALL_WINDOWS); addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent e) { System.out.println("Quitting"); System.exit(0); } }); this.setVisible(true); this.pack();
}
public static void main(String[] args) { new AppleUI();
}
}

The application works fine when I select Run Project in NetBeans. However, when I select Clean and Build Project or Test Project I get the following error: ”package com.apple.eawt does not exist”.

Consequently I get ”cannot find symbol” errors for Application and QuitStrategy as well.

I find this very strange. The package com.apple.eawt is located in rt.jar together with all other Java runtime classes. Why doesn’t NetBeans recognize this when doing Clean and Build? What do I do wrong?

I’m using JDK 1.8.0_91 and NetBeans IDE 8.1. Thanks for help!

2

1 Answer

Answering my own question...

After a lot of research I found out that the compiler isn't looking for the package in the rt.jar but in a symbol file called ct.sym, which only contains the standard Java packages.

It is possible to ignore the symbol file using the compiler option -XDignore.symbol.file, however this seems not to be the recommended solution.

Instead I have rewritten the code in a way that I don't use the com.apple.eawt package but system properties.

//Application.getApplication().setQuitStrategy(QuitStrategy.CLOSE_ALL_WINDOWS);
System.setProperty("apple.eawt.quitStrategy", "CLOSE_ALL_WINDOWS");

See also here.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.