お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2013-06-12 21:05:53

av7y6unm
メンバ
登録日: 2008-12-17

Ubuntu 13.04上のFreemindで環境設定が行えない

いつもお世話になっています.
Ubuntu 13.04でFreemind 0.9.0を使っています.
特に問題なく動いているように思えたのですが,環境設定が行えないことがわかりました.
そこで,以下のことを試しました.

[1] 初期設定ファイルの初期化
環境設定ファイルが壊れていると,環境設定が行えないようなので,~/.freemindをバッサリ削除して起動してみました.
しかし,やはり環境設定は行えませんでした.

[2] Javaランタイムの変更
当初,OpenJDK7を使っていました.そこで,Oracleのものだと動くかと思い,Oracle JDK6/7/8すべて試しましたが,やはり環境設定は行えませんでした.

端末からFreemindを起動して環境設定を行おうとすると以下のようにエラーが表示されます.例外が生じているようです.

コード:

STDERR: Exception in thread "AWT-EventQueue-0" 
STDERR: java.lang.IllegalAccessError: tried to access method com.jgoodies.forms.layout.RowSpec.<init>(Ljava/lang/String;)V from class freemind.preferences.layout.OptionPanel$KeyProperty
STDERR:     at freemind.preferences.layout.OptionPanel$KeyProperty.layout(OptionPanel.java:403)
STDERR:     at freemind.preferences.layout.OptionPanel.buildPanel(OptionPanel.java:205)
STDERR:     at freemind.controller.Controller$PropertyAction.actionPerformed(Controller.java:1500)
STDERR:     at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
STDERR:     at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
STDERR:     at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
STDERR:     at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
STDERR:     at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
STDERR:     at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
STDERR:     at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)
STDERR:     at java.awt.Component.processMouseEvent(Component.java:6505)
STDERR:     at javax.swing.JComponent.processMouseEvent(JComponent.java:3312)
STDERR:     at java.awt.Component.processEvent(Component.java:6270)
STDERR:     at java.awt.Container.processEvent(Container.java:2229)
STDERR:     at java.awt.Component.dispatchEventImpl(Component.java:4861)
STDERR:     at java.awt.Container.dispatchEventImpl(Container.java:2287)
STDERR:     at java.awt.Component.dispatchEvent(Component.java:4687)
STDERR:     at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
STDERR:     at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
STDERR:     at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
STDERR:     at java.awt.Container.dispatchEventImpl(Container.java:2273)
STDERR:     at java.awt.Window.dispatchEventImpl(Window.java:2719)
STDERR:     at java.awt.Component.dispatchEvent(Component.java:4687)
STDERR:     at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)
STDERR:     at java.awt.EventQueue.access$200(EventQueue.java:103)
STDERR:     at java.awt.EventQueue$3.run(EventQueue.java:688)
STDERR:     at java.awt.EventQueue$3.run(EventQueue.java:686)
STDERR:     at java.security.AccessController.doPrivileged(Native Method)
STDERR:     at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
STDERR:     at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
STDERR:     at java.awt.EventQueue$4.run(EventQueue.java:702)
STDERR:     at java.awt.EventQueue$4.run(EventQueue.java:700)
STDERR:     at java.security.AccessController.doPrivileged(Native Method)
STDERR:     at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
STDERR:     at java.awt.EventQueue.dispatchEvent(EventQueue.java:699)
STDERR:     at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
STDERR:     at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
STDERR:     at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
STDERR:     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
STDERR:     at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
STDERR:     at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

何か対処法はありますでしょうか?

オフライン

 

#2 2013-06-17 19:50:57

S_T_M
メンバ
登録日: 2012-06-03

Re: Ubuntu 13.04上のFreemindで環境設定が行えない

java.lang.IllegalAccessError

アクセスできないフィールドへのアクセスや変更、あるいはアクセスできないメソッドの呼出しをアプリケーションが試みた場合にスローされます。
とのことですので、関連するファイルが書き込めないのではないでしょうか。

オフライン

 

#3 2013-06-18 00:45:27

STGSAGWAN
ゲスト

Re: Ubuntu 13.04上のFreemindで環境設定が行えない

私のテスト環境でも再現しました。

freemindをビルドした時点のlibjgoodies-forms-javaと、freemind実行時点のlibjgoodies-forms-javaのバージョンに食い違いが発生しているのが、原因でしょう。

具体的には、freemind.preferences.layout.OptionPanelの403行目で、RowSpecをnewしてますが、

コード:

rowSpec = new RowSpec("fill:20dlu");

com.jgoodies.forms.layout.RowSpecのコンストラクタのうち、文字列を受け入れるコンストラクタ

コード:

private RowSpec(String encodedDescription){ ... }

が何故かprivateになってます。(おそらく以前はpublicでprivateに変更されたのかと)

だから、IllegalAccessErrorが発生するのでしょう。

[回避策]
Ubuntu 12.04のlibjgoodies-forms-javaを http://packages.ubuntu.com/precise/libjgoodies-forms-java からダウンロード

debファイルの中身の./usr/share/java/forms-1.3.0.jarをクラスパスに含めた上で、freemindを起動すれば、"とりあえず"直る。
(古いバージョンのlibjgoodies-forms-javaを強引に使う事で、freemindにおいて他にどういう影響があるかは私には全く分からない。)

例えば、

コード:

CLASSPATH=/home/ユーザ名/forms-1.3.0.jar:$CLASSPATH freemind

な感じ。

なお、ファイル書き込みなどは全く関係ないです。

どのランタイムで動かすかも関係ないです。

 

#4 2013-06-18 08:35:31

av7y6unm
メンバ
登録日: 2008-12-17

Re: Ubuntu 13.04上のFreemindで環境設定が行えない

>S_T_Mさん
情報ありがとうございます.
同じファイルで過去のUbuntuでは開けていましたし,.freemind等のパーミッション等も特に問題ないようです.
インストールもapt-getで行なっていますので,大丈夫だとは思っています.


> STGSAGWANさん
検証と詳細なご報告,ありがとうございます.
原因がわかって安心しました.
ご指摘のライブラリを古いものにするのは少し不安でしたので,結局,こちらから,
「binaries for any operating system - max」をダウンロードして,ホームディレクトリ下に展開し,利用することにしました.このアーカイブは問題なく環境設定も動きます.(設定ウインドウが表示されるまで少し待たされますが...)
次回アップデートで修正されることを期待して,しばらくこの方法でつなごうかと思います.

オフライン

 

Board footer

Powered by FluxBB