2015-10-23 10 views
13

私は、デスクトップAPIが動作するためにJavaが必要とするライブラリ、具体的にはBROWSEの機能を特定する方法を見つけようとしています。私はいくつかのガイド、バグレポート、回避策を読みましたが、どれもうまくいきません。LinuxでJava Desktop APIに必要なライブラリを見つける方法を教えてください。

libgnome2-0パッケージとgvfs-backendsパッケージをインストールすることでDebian上で動作させることができました。デスクトップAPIがvfsを必要としていたように見えるので、第1のものが一般的に(同じ問題を解決する人々によって)推奨され、第2のものは幸運な推測でした。しかし、私はこれらの2つのパッケージをインストールしてもUbuntu 14.04でこの作業を行うことはできません。

私の質問は次のとおりです。LinuxでJava Desktop APIに必要なライブラリを見つけるにはどうすればよいですか?特にUbuntu 14.04でのOracle JDK 8何らかのライブラリがデスクトップAPIであるかどうかをキャプチャしたり、ネイティブコードから何らかのエラー出力を取得することは可能ですか?

EDITは:実行時に要求されているすべてのファイルをトレースするコマンドを実行するために、私が試した

public class Main { 
    public static void main(String[] args) throws URISyntaxException, IOException { 
     Desktop.getDesktop().browse(new URI("http://www.google.com")); 
    } 
} 

:私は、ブラウズを使用しようとしている1行のコードを作成しましたテストの:

strace -e open,access -f -o browse java -jar BrowseTester.jar 

私は、探したとアクセスされているJavaのネイティブとLinuxの両方にネイティブライブラリを示す出力の多くを得るが、私は実際に欠けているものを検出する方法がわかりません。出力の

例:

30171 open("/usr/lib/x86_64-linux-gnu/gvfs/tls/x86_64/libgvfscommon.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) 
30171 open("/usr/lib/x86_64-linux-gnu/gvfs/tls/libgvfscommon.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) 
30171 open("/usr/lib/x86_64-linux-gnu/gvfs/x86_64/libgvfscommon.so", O_RDONLY|O_CLOEXEC) = -1 ENOENT (No such file or directory) 
30171 open("/usr/lib/x86_64-linux-gnu/gvfs/libgvfscommon.so", O_RDONLY|O_CLOEXEC) = 11 

私は、ネイティブライブラリはJavaデスクトップAPIの参照機能のために必要とされるかを検出する方法方法が必要です。私はブラウズを呼び出しているコードに触れることができません。

EDIT2:完全なGnome環境を備えた新しいUbuntu 14.04を別のマシンにインストールしようとしましたが、動作します。しかし、1.5GBの(ほとんど)未使用のライブラリが追加されているので、これを避けたいと思っています。それでもJavaが正確に必要とするもの、または少なくとも何らかの種類の出力が失敗する場所を見つける方法を探しています。

+1

http://stackoverflow.com/a/18004334/4618338とhttp://stackoverflow.com/a/19795921/4618338の回答は既に読んでいますか?特定のライブラリの名前を必要とするのか、Javaで指定されたURLを外部から開くだけで問題が解決するのでしょうか? –

+0

@TrynkiewiczMariusz簡単に見落とすことができるように、私は賞金のテキストを質問に追加しました。私はブラウズ作業をする必要があります。私はそれを使用しているコードに触れることができないので、私はそれを回避する回避策を使用することはできません。 – sm4

答えて

1

the sourceに行くと、ここに役立つかもしれません。 Makefileを掘り、私はこれらが含まれて見つける:あなたはそれを持って

EXTRA_INCLUDES = `pkg-config --cflags glib-2.0` \ 
       `pkg-config --cflags libgnome-2.0` \ 
       `pkg-config --cflags gnome-vfs-2.0`\ 
       `pkg-config --cflags gnome-vfs-module-2.0` \ 
       `pkg-config --cflags bonobo-activation-2.0` \ 
       `pkg-config --cflags libbonobo-2.0` \ 
       `pkg-config --cflags ORBit-2.0` \ 
       `pkg-config --cflags gconf-2.0` 

そして、そこに:)

+0

残念ながら、これは役に立たなかった。私はこれらのライブラリをUbuntu(動作していない)とDebian(作業中)の両方で、ORBitとは別に用意していますが、ORBitはどちらにもありません...しかしパッケージがインストールされていても見つかりません。 – sm4

+0

32ビットと64ビットの場合だけではないことを確認しましたか? – Tomas

+0

すべてが64ビットで整然としたようです。 – sm4

0

私は別の考えを持っていた:多分あなたはltraceの代わりstraceを使用できますか?

ltrace -e open,access -f -o browse java -jar BrowseTester.jar 
関連する問題