В Ubuntu 22.04 флажок sqldeveloper “сохранить пароль” нельзя установить.

Вопрос или проблема

Я следую инструкции по адресу https://www.youtube.com/watch?v=_sIS3-4TELc, но когда я запускаю sqldeveloper, чекбокс “Save Password” не может быть отмечен.

Подробно: я загружаю sqldeveloper
SQL Developer 24.3.1 с сайта oracle.
https://www.oracle.com/hk/database/sqldeveloper/technologies/download/

Затем выбираю другую платформу.
Далее распаковываю и перемещаю в папку /opt, затем выполняю команду

chmod +x /opt/sqldeveloper/sqldevveloper.sh

Затем перехожу в папку /opt/sqldeveloper и запускаю sqldeveloper с помощью команды

./sqldeveloper.sh

В фоновом терминале я вижу следующую ошибку при запуске sqldeveloper, но не знаю, связано ли это, ошибка:

java.lang.IllegalAccessException: class oracle.ideimpl.config.EnvironOptionsPanel cannot access class com.sun.java.swing.plaf.gtk.GTKLookAndFeel (in module java.desktop) because module java.desktop does not export com.sun.java.swing.plaf.gtk to unnamed module @38dddff8
    at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:392)
    at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:674)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:490)
    at java.base/java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128)
    at java.base/jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:347)
    at java.base/java.lang.Class.newInstance(Class.java:645)
    at oracle.ideimpl.config.EnvironOptionsPanel._initLafCombo(EnvironOptionsPanel.java:540)
    at oracle.ideimpl.config.EnvironOptionsPanel.initComponents(EnvironOptionsPanel.java:238)
    at oracle.ideimpl.config.EnvironOptionsPanel.<init>(EnvironOptionsPanel.java:99)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
    at javax.ide.util.MetaClass.newInstance(MetaClass.java:145)
    at oracle.dbtools.raptor.standalone.IndexedPreferencesCommand$IndexPreferencesTask.doWork(IndexedPreferencesCommand.java:122)
    at oracle.dbtools.raptor.standalone.IndexedPreferencesCommand$IndexPreferencesTask.doWork(IndexedPreferencesCommand.java:65)
    at oracle.dbtools.raptor.backgroundTask.RaptorTask.call(RaptorTask.java:204)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$RaptorFutureTask.run(RaptorTaskManager.java:798)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.base/java.lang.Thread.run(Thread.java:840)
Gtk-Message: 11:07:53.312: Failed to load module "canberra-gtk-module"
java.lang.IllegalAccessException: class oracle.ideimpl.config.EnvironOptionsPanel cannot access class com.sun.java.swing.plaf.gtk.GTKLookAndFeel (in module java.desktop) because module java.desktop does not export com.sun.java.swing.plaf.gtk to unnamed module @38dddff8
    at java.base/jdk.internal.reflect.Reflection.newIllegalAccessException(Reflection.java:392)
    at java.base/java.lang.reflect.AccessibleObject.checkAccess(AccessibleObject.java:674)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:490)
    at java.base/java.lang.reflect.ReflectAccess.newInstance(ReflectAccess.java:128)
    at java.base/jdk.internal.reflect.ReflectionFactory.newInstance(ReflectionFactory.java:347)
    at java.base/java.lang.Class.newInstance(Class.java:645)
    at oracle.ideimpl.config.EnvironOptionsPanel._initLafCombo(EnvironOptionsPanel.java:540)
    at oracle.ideimpl.config.EnvironOptionsPanel.initComponents(EnvironOptionsPanel.java:238)
    at oracle.ideimpl.config.EnvironOptionsPanel.<init>(EnvironOptionsPanel.java:99)
    at oracle.dbtools.raptor.config.EnvironOptionsPanelWrapper.<init>(EnvironOptionsPanelWrapper.java:30)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at java.base/jdk.internal.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
    at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:500)
    at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:481)
    at javax.ide.util.MetaClass.newInstance(MetaClass.java:145)
    at oracle.dbtools.raptor.standalone.IndexedPreferencesCommand$IndexPreferencesTask.doWork(IndexedPreferencesCommand.java:122)
    at oracle.dbtools.raptor.standalone.IndexedPreferencesCommand$IndexPreferencesTask.doWork(IndexedPreferencesCommand.java:65)
    at oracle.dbtools.raptor.backgroundTask.RaptorTask.call(RaptorTask.java:204)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at oracle.dbtools.raptor.backgroundTask.RaptorTaskManager$RaptorFutureTask.run(RaptorTaskManager.java:798)
    at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
    at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
    at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
    at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
    at java.base/java.lang.Thread.run(Thread.java:840)

Версия Ubuntu:22.04, версия Sqldeveloper:24.3.1.347, версия java:17.0.14

*** Редактировать: Этих двух ошибок при запуске теперь нет, но чекбокс сохранения пароля все еще не может быть отмечен. ***

Теперь при запуске отображаются следующие предупреждения и нет ошибок:

Oracle SQL Developer
Copyright (c) 2005, 2024, Oracle and/or its affiliates. All rights reserved.

OpenJDK 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release.
WARNING: A terminally deprecated method in java.lang.System has been called
WARNING: System::setSecurityManager has been called by org.netbeans.TopSecurityManager (file:/opt/sqldeveloper/netbeans/platform/lib/boot.jar)
WARNING: Please consider reporting this to the maintainers of org.netbeans.TopSecurityManager
WARNING: System::setSecurityManager will be removed in a future release
WARNING: A terminally deprecated method in java.lang.System has been called
WARNING: System::setSecurityManager has been called by oracle.ide.IdeCore (file:/opt/sqldeveloper/ide/extensions/oracle.ide.jar)
WARNING: Please consider reporting this to the maintainers of oracle.ide.IdeCore
WARNING: System::setSecurityManager will be removed in a future release

Ответ или решение

Ваш вопрос о проблемах с невозможностью установки флажка "Сохранить пароль" в приложении SQL Developer на Ubuntu 22.04 является довольно распространенной проблемой при использовании данного программного обеспечения вместе с определенными версиями Java и Ubuntu. Позвольте мне предложить систематический подход к решению этой проблемы, рассматривая теорию, примеры и применение.

Теория

SQL Developer — это мощное средство для управления базами данных, созданное Oracle, которое требует определенных зависимостей и корректной конфигурации для работы. На платформе Linux, такой как Ubuntu, могут возникать специфические проблемы совместимости, которые необходимо учитывать. Это особенно актуально при учете взаимодействия между различными версиями Java и библиотеками пользовательского интерфейса (Look and Feel), такими как GTK, часто используемыми в настольных средах Linux.

Пример

Из вашего сообщения можно выявить несколько важных проблем:

  1. Версия Java: Ваша конфигурация использует Java 17.0.14, что может быть источником проблемы по совместимости, так как SQL Developer может требовать более раннюю версию Java для корректной работы.
  2. Ошибки GTK: Сообщения об ошибках связаны с GTK, что указывает на возможные проблемы с набором библиотек для Java, который взаимодействует с десктопными элементами пользовательского интерфейса Ubuntu.
  3. Настройки безопасности Java: В предупреждениях указывается использование устаревших методов, таких как System.setSecurityManager, что может вызывать конфликты с разрешениями на уровне системы.

Применение

Чтобы решить указанную проблему, можно предпринять следующие шаги:

  1. Проверка версии Java:
    Убедитесь, что ваша конфигурация Java совместима с SQL Developer. Официально поддерживаемые версии Java указываются в документации Oracle. Попробуйте использовать Java 11, которая известна своей стабильностью и совместимостью с SQL Developer.

    sudo update-alternatives --config java

    Выберите нужную версию Java в списке или установите недостающую, с помощью:

    sudo apt install openjdk-11-jdk
  2. Установка зависимостей для GTK:
    Убедитесь в наличии библиотек, необходимых для полноценной работы GTK на вашей системе. Установите необходимые пакеты, с помощью:

    sudo apt install libcanberra-gtk-module libcanberra-gtk3-module
  3. Проверка и настройка конфигурации SQL Developer:
    Убедитесь, что конфигурационные файлы SQL Developer корректны. Вы можете изменить файл sqldeveloper.conf, который находится в директории /opt/sqldeveloper/sqldeveloper/bin, добавив или изменив строку:

    SetJavaHome /path/to/your/java

    Убедитесь, что path/to/your/java соответствует используемой версии Java.

  4. Использование альтернативных тем интерфейса:
    Иногда проблемы с GUI можно обойти, изменив тему пользовательского интерфейса на другую, менее требовательную. Проверьте возможности изменения темы в настройках SQL Developer напрямую.

  5. Очистка кеша и переустановка SQL Developer:
    Удаление данных кеша или полная переустановка программы также может помочь в решении проблем. Для удаления кеша:

    rm -rf ~/.sqldeveloper

    Затем загрузите и переустановите SQL Developer, следуя инструкциям с официального сайта.

  6. Проверка на исправления и обновления:
    Обратитесь в поддержку Oracle или на форумы пользователей для поиска специфических исправлений для вашей версии Ubuntu и SQL Developer.

Следуя этим рекомендациям, вы сможете устранить проблемы с "Сохранением пароля" в SQL Developer на Ubuntu. Если проблема сохранится, это может быть связано с более сложными проблемами совместимости, которые потребуют детального анализа и помощи от команды техподдержки Oracle.

Оцените материал
Добавить комментарий

Капча загружается...