LINUX.ORG.RU

Проблема с java.util.prefs.FileSystemPreferences при попытке запустить программу

 ,


0

1

Пытаюсь запустить Jetbrains CLion, возникает эта ошибка

andy@dwmX-jessie ~/clion-2016.1.2/bin
 % ./clion.sh      
Jun 05, 2016 12:20:12 PM java.util.prefs.FileSystemPreferences$6 run
WARNING: Prefs file removed in background /home/andy/.java/.userPrefs/prefs.xml

В каталоге /home/andy/.java/.userPrefs появляется пустой файл .user.lock.andy (иногда еще .userRootModFile.andy) и папка jetbrains/ с файлом prefs.xml и папкой _!(!!cg"p!(}!}@«j!(k!|w"w!'8!b!„p!':!e@== (что-то с ней точно не так хехе), в которой хранится тот же файл.

Вывглядит это так:

  • .java/
    • .userPrefs/
      • .user.lock.andy
      • jetbrains/
        • prefs.xml
        • _!(!!cg"p!(}!}@„j!(k!|w"w!'8!b!„p!':!e@== /
          • prefs.xml

Сам файл prefs.xml содержит:

 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE map SYSTEM "http://java.sun.com/dtd/preferences.dtd">
<map MAP_XML_VERSION="1.0"/>

Если скопировать этот файл в .userPrefs, где он его и искал, при этом удалив все файлы и папки, что он создал, при запуске Clion повится:

andy@dwmX-jessie ~/clion-2016.1.2/bin
 % ./clion.sh                                 
Jun 05, 2016 12:44:34 PM java.util.prefs.FileSystemPreferences$6 run
WARNING: Invalid preferences format in /home/andy/.java/.userPrefs/prefs.xml
Jun 05, 2016 12:45:04 PM java.util.prefs.FileSystemPreferences$6 run
WARNING: Prefs file removed in background /home/andy/.java/.userPrefs/prefs.xml

Тоже самое происходит при рандомных манипуляциях с pref.xml.

Пробовал запускать от рута тоже.

Нагуглил, что “...There is a problem reading xml based preferences“. Что с этим делать - не знаю.

В конце-концов я нашел это http://www.jfree.org/phpBB2/viewtopic.php?f=3&t=3531 Тут говорится, что проблема в новой версии Xerces. У меня не было никакой, япоставил из репозитория oldstable - ночего не изменилось.

Попробовал все, что смог придумать.

Debian Jessie, DWM, java-1.8.0_91


ошибка
WARNING

есть подозрение что это не ошибка а предупрежение

Deleted
()

Дебианщики известные поехавшие.

Попробуй скачать JDK 8 с сайта Oracle, установить, и вручную положить его в path

в .bashrc/.zhsrc положить вот такое:

export JAVA_HOME=куда ты его скачал
export PATH=$JAVA_JOME/bin:$PATH
stevejobs ★★★★☆
()
Ответ на: комментарий от EXL

должно быть пофиг, на Зуле тоже должно запускаться, главное чтобы это было какое-нибудь современное openjdk

stevejobs ★★★★☆
()

в чем проблема-то? CLion падает? Дай стектрейс, который печатается непосредственно при падении

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

Специально поставил руками последний JDK, думал проблема в старой версии.

Сейчас закинул в .bashrc и.zhsrc

export JAVA_HOME=/usr/local/java/jdk1.8.0_91
export PATH=$JAVA_JOME/bin:$PATH
перезагрузился для надежности, но ничего не изменилось.

yanti
() автор топика
Ответ на: комментарий от yanti

и да, что у тебя там такое на скриншоте, опенбокс? Из менюшки он не запустится (не помню почему), только из терминала

попробуй перед запуском в терминале сделать так:

export _JAVA_OPTIONS='-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel -Dswing.crossplatformlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel'
stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

С тем же результатом

% _JAVA_OPTIONS="-Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel" ./clion.sh
Picked up _JAVA_OPTIONS: -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel
Jun 05, 2016 3:59:49 PM java.util.prefs.FileSystemPreferences$6 run
WARNING: Prefs file removed in background /home/andy/.java/.userPrefs/prefs.xml

Попробую еще раз переустановить jdk

yanti
() автор топика
Ответ на: комментарий от yanti

думаю, что prefs.xml тут не при чем вообще. Нужно как-то узнать, с какой ошибкой падает сам Clion. Посмотри в текстовом редакторе clion.sh, что там вообще происходит, может какими-то переменными можно включить логи

stevejobs ★★★★☆
()
Ответ на: комментарий от yanti

Судя по формату картинки - там именно экран загрузки. А ты подождал после запуска нужное количество времени? Какие спеки у компьютера - количество свободной RES RAM, процессор? Если машинка совсем слабая, там наверное нужно подождать несколько минут, пока оно запустится. У меня на i7 с ssd и 24 гигами оперативки Идея запускается полминуты. Попробуй поставить его на запуск и пойти попить чаю :)

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

Пробовал ждать достаточно долго. Причем в первый раз она показывает диалоговое окно, мол, надо ли импортировать настройки предыдущей версии. Потом появляется эта белай плашка, вроде как экран загрузки, и все повисает. Я думаю проблема все-таки в криво поставленной джаве/криво поставленной системе (когда-то из интереса поставил себе минимальный дебиан и до сих пор довожу его до более-сенее рабочего состояния). Сейчас вот скачал NetBeans (netbeans.sh, один файл), при запуске получаю такую же пустую плашку загрузочного экрана - и все.

Дописал в начало скрипта set -o xtrace, он выдал такое: http://pastebin.com/iAEfsYw8

yanti
() автор топика
Ответ на: комментарий от yanti

в в осоме был баг что жаба приложения показывали пустое окно, проверь в простом оконнно менеджере, наприме в icewm

Deleted
()

Возможное решение проблемы

Нашел решение в статье на wiki.archlinux.org в статье про OpenJDK_8:

«You may use the wmname from suckless.org to make the JVM believe you are running a different window manager. This may solve a rendering issue of Java GUIs occurring in window managers like Awesome or Dwm or Ratpoison. »

$ wmname LG3D
«You must restart the application in question after issuing the wmname command. This works because the JVM contains a hard-coded list of known, non-re-parenting window managers. For maximum irony, some users prefer to impersonate LG3D, the non-re-parenting window manager written by Sun, in Java.»

yanti
() автор топика
7 февраля 2017 г.
Ответ на: Возможное решение проблемы от yanti

Я вот забрался в код упомянутого модуля, и обнаружил такое:


static boolean isNonReparentingWM() {
        if (awtWMNonReparenting == -1) {
            awtWMNonReparenting = (XToolkit.getEnv("_JAVA_AWT_WM_NONREPARENTING") != null) ? 1 : 0;
        }
        return (awtWMNonReparenting == 1 || XWM.getWMID() == XWM.COMPIZ_WM
                || XWM.getWMID() == XWM.LG3D_WM || XWM.getWMID() == XWM.CWM_WM);
    }

По крайней мере это так в OpenJDK 9.

Возможно, решение проще - нужно устанавливать переменную окружения _JAVA_AWT_WM_NONREPARENTING

stevejobs ★★★★☆
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.