2012-05-22 29 views
8

Tôi đã sử dụng mã sau để đặt Tên ứng dụng (trong thanh trình đơn "Hệ thống" trên Apple MacBook của tôi). (Trên thực tế, tôi nghĩ rằng tôi đã sao chép điều này từ stackoverflow.)Java/OS X Lion: Đặt tên ứng dụng đã ngừng hoạt động với JDK1.7

Về cơ bản, có một lớp AppLauncher riêng biệt sử dụng System.setProperty() để đặt tên ứng dụng trước khi tạo Runnable mới cho chính ứng dụng.

Chỉ hoạt động tốt.

Tuy nhiên, kể từ khi tôi tải xuống và bắt đầu sử dụng JDK 1.7, giải pháp ngừng hoạt động - Tôi nhận được Tên lớp thay vì Tên ứng dụng trong menu, giống như trước khi tôi tìm thấy giải pháp đó. Tôi đã thử googling nó, nhưng vô ích.

Đây là mã không còn tồn tại được sử dụng để làm việc dưới JDK 1.6, giảm đến các bộ phận có liên quan:

public class AppLauncher { 
public static void main(String[] args) { 

    System.setProperty("apple.laf.useScreenMenuBar", "true"); 
    System.setProperty("com.apple.mrj.application.apple.menu.about.name", 
       "My Application"); 
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); 

    javax.swing.SwingUtilities.invokeLater(new Runnable() { 
     public void run() { 
      new MainWindow(); 
     } 
    }); 
} 
} 

Cám ơn ý kiến!

ETA: gọi bằng java -Dapple.laf.useScreenMenuBar = true vẫn hoạt động. Pu8tting các tài sản vào Info.plist có thể làm việc, nhưng tôi đã không thử nó được nêu ra.

+0

Bất kỳ may mắn với '-D' hoặc' Info.plist', thể hiện [ở đây] (http://stackoverflow.com/a/8956715/230513)? Nó có thể không được hỗ trợ trong OpenJDK. – trashgod

+0

Xin chào, vâng - D dường như làm điều này. Tôi sẽ giữ Info.plist ở phía sau đầu của tôi và thử nó một lần tôi ở đó, cảm ơn. –

+0

@trashgod: bạn có thể thêm nó làm câu trả lời để câu hỏi có thể để lại danh sách "chưa được trả lời". – wchargin

Trả lời

2

Dường như việc đặt thuộc tính sử dụng -D giải quyết được sự cố.

java -Dapple.laf.useScreenMenuBar=true … 

Các cách tiếp cận khác được đề cập trong liên quan này answer.

1

Tôi không thể nhận được phương thức Info.plist hoặc -D để làm việc (Tôi đang phân phối ứng dụng JRuby, có thể có liên quan đến nó), nhưng với tôi, hãy chuyển tham số -Xdock:name như được đề cập trong this article trong phần "Thêm tinkering với thanh menu" dường như làm việc tuyệt vời.

Ví dụ: -Xdock:name="My Application"

Các vấn đề liên quan