Предупреждение компиляции Java - PullRequest
3 голосов
/ 20 марта 2012

При создании файла JAR (успешно) в Netbeans 7.1.1 я обнаружил следующее предупреждение:

...
warning: [options] bootstrap class path not set in conjunction with -source 1.6
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
1 warning
...

Что это значит?Кроме того, влияет ли среда выполнения Java на совместимость JAR (приложения)?

Когда я запускаю JAR в XP и Ubuntu, приложение выглядит нормально, но когда я пытаюсь запустить его на Fedora, оно не использует полный экран и не имеет контекстного меню.когда я щелкну правой кнопкой мыши на JTable.Что мне делать с этим?

Некоторые фрагменты кода:

Этот код вызывает JFrame, устанавливая его в полноэкранный режим при загрузке, но это не работает в Fedora.

this.setVisible(false);
frmMain xForm = new frmMain();

xForm.setLocationRelativeTo(null);
GraphicsEnvironment e = GraphicsEnvironment.getLocalGraphicsEnvironment();

xForm.setMaximizedBounds(e.getMaximumWindowBounds());
xForm.setExtendedState(xForm.getExtendedState()|JFrame.MAXIMIZED_BOTH );
xForm.setVisible(true);

Когда я щелкаю правой кнопкой мыши по JTable, чтобы показать, что контекстное меню отлично работает в Windows, но не в fedora и Ubuntu.

private void tableItemMouseReleased(java.awt.event.MouseEvent evt) {                                        

    if ( SwingUtilities.isRightMouseButton( evt ))
    {
        int r = tableItem.rowAtPoint(evt.getPoint());
        if (r >= 0 && r < tableItem.getRowCount())
        {
            tableItem.setRowSelectionInterval(r, r);
        } 
        else 
        {
            tableItem.clearSelection();
        }

        int rowindex = tableItem.getSelectedRow();
        if (rowindex < 0)
            return;

        if (evt.isPopupTrigger() && evt.getComponent() instanceof JTable ) 
        {
            pmItem.show(evt.getComponent(), evt.getX(), evt.getY());
        }
    }
}   

ОБНОВЛЕНИЕ 1

добавив -Xlint:unchecked в опциях компиляции, я получил это предупреждение:

warning: [options] bootstrap class path not set in conjunction with -source 1.6

C:\Documents and Settings\Totet\My Documents\NetBeansProjects\DCWD_DepreciationMonitoringSystem\src\DCWDDMS\frmItemDepreciation.java:432: 
warning: [unchecked] unchecked call to addElement(E) as a member of the raw type Vector
                newRow.addElement(rs.getObject(i));
  where E is a type-variable:
    E extends Object declared in class Vector

C:\Documents and Settings\Totet\My Documents\NetBeansProjects\DCWD_DepreciationMonitoringSystem\src\DCWDDMS\frmMain.java:351: 
warning: [unchecked] unchecked call to addElement(E) as a member of the raw type Vector
                newRow.addElement(rs.getObject(i));
  where E is a type-variable:
    E extends Object declared in class Vector

C:\Documents and Settings\Totet\My Documents\NetBeansProjects\DCWD_DepreciationMonitoringSystem\src\DCWDDMS\frmNewItem.java:831: 
warning: [unchecked] unchecked call to addElement(E) as a member of the raw type DefaultComboBoxModel
                    model.addElement(resultList.getString(1));
  where E is a type-variable:
    E extends Object declared in class DefaultComboBoxModel

C:\Documents and Settings\Totet\My Documents\NetBeansProjects\DCWD_DepreciationMonitoringSystem\src\DCWDDMS\frmNewItem.java:833: 
warning: [unchecked] unchecked call to setModel(ComboBoxModel<E>) as a member of the raw type JComboBox
                cmbAccount.setModel(model);
  where E is a type-variable:
    E extends Object declared in class JComboBox

5 warnings

Ответы [ 2 ]

4 голосов
/ 20 марта 2012

Настройка источника / двоичного формата

Вот явный способ явно указать источник и цель вашего проекта. В большинстве случаев вам не нужно возиться с этим, как только вы настроите платформу Java для вашего проекта в netbeans.

  1. Щелкните правой кнопкой мыши Project и выберите Properties
  2. Выбор источников
  3. Установите уровень источника на 6 (Источник / Двоичный формат)
  4. Нажмите кнопку ОК.

Предупреждение о небезопасных операциях

Обычно я игнорирую «предупреждение о небезопасной работе». Но если вы хотите знать, почему он отображается, перекомпилируйте с параметром -Xlint:unchecked (на шаге 5 выше), и он объяснит, что и почему считается небезопасным.

Проблемы с пользовательским интерфейсом в Fedora

В Fedora проверьте ваш путь, чтобы убедиться, что вы не используете стандартную среду выполнения GNU Java.

перейдите в командную строку и введите

java -version чтобы увидеть, что он возвращает. Он должен возвращать информацию Oracle (Sun) Java. В противном случае вы столкнетесь с проблемами, особенно в Swing / UI.

4 голосов
/ 20 марта 2012

javac с радостью адаптируется к данному выпуску -source и генерирует -target совместимые файлы классов, но он не может знать, что вы случайно не использовали неуместную функцию, если вы не укажете ей, какой JDK использовать.Как правило, в среде IDE можно выбрать одну из установленных версий JDK для снижения риска.

Приложение: в NetBeans вы можете указать Java Platform в File > Project Properties > Library.

Приложение: ComboBoxModel стал универсальным в Java 7. Поскольку вы нацеливаетесь на 1.6, вам необходимо установить соответствующий JDK.NetBeans должен найти его при запуске и отобразить его в приложении Tools > Java Platforms.

. Если вы выберете таргетинг на Java 7, здесь есть соответствующий пример здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...