2015-10-23 22 views
13

Java'nın hangi API kütüphanelerinin Desktop API'sinin çalışmasını gerektirdiğini, özellikle de BROWSE işlevinin nasıl çalıştığını bulmaya çalışıyorum. Birkaç rehber, hata raporları ve geçici çözümler okudum, ancak bunların hiçbiri işe yaramıyor.Java Desktop API'nin hangi kütüphaneleri Linux'ta bulunması gerekir?

libgnome2-0 ve gvfs-backends paketlerini yükleyerek Debian üzerinde çalışmayı başardım. Birincisi genellikle tavsiye edilir (aynı problemi çözen insanlar tarafından), ikincisi şanslı bir tahmindi çünkü Desktop API'sı vfs gerektiriyordu. Ancak bu iki paketi kurarken bile Ubuntu 14.04'te bu işi yapamıyorum.

Sorularım: Java Desktop API'nın hangi kütüphaneleri Linux üzerinde gerektirdiğini nasıl bulabilirim? Ubuntu 14.04 üzerinde özellikle Oracle JDK 8. Yerel kütüphaneden hangi kitaplıkların masaüstü API'si olduğu veya bazı hata çıktısı alması mümkün mü?

DÜZENLEME: yürütülürken talebinde bulunduklarını tüm dosyaları izlemek için bir komutu çalıştırmak için denedim

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

: Ben gözatmasını kullanmaya çalışıyor bir tek satır kod oluşturdunuz testin:

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

ben aradım buldum ve erişilen ediliyor java özgün olduğu, Linux hem yerel kütüphaneleri belirten çıktı bir sürü olsun, ama aslında eksik ne algılamak nasıl emin değilim. çıktının

Örnek:

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 Masaüstü API göz işlevselliği için gerekli olan yerli hangi kütüphaneler algılamak nasıl bir yolunu bulmalıyız. Göz atmayı çağıran kodlara dokunamıyorum.

EDIT2: Farklı bir makinede tam bir Gnome ortamı ile yeni bir Ubuntu 14.04 yüklemeyi denedim ve çalışır. Ancak bundan kaçınmak istiyorum çünkü 1.5GB (çoğunlukla) kullanılmayan kütüphaneleri ekler. Hala Java'nın tam olarak neye ihtiyaç duyduğunu ya da en azından başarısız olduğu yerden bir tür çıktı elde etmenin bir yolunu arıyorum.

+1

http://stackoverflow.com/a/18004334/4618338 ve http://stackoverflow.com/a/19795921/4618338 yanıtlarını zaten okudunuz mu? Belirli kütüphanelerin isimlerine ihtiyacınız var mı yoksa sadece java'da verilen URL'yi harici olarak açarak sorununuzu çözebilir misiniz? –

+0

@TrynkiewiczMariusz Ben kolayca göz ardı edilebilir gibi görünüyor, bu soruya lütuf gelen metni ekledim. Göz atma işini yapmam lazım. Onu aşan geçici çözümleri kullanamıyorum çünkü onu kullanan kodlara dokunamıyorum. – sm4

cevap

1

the source adresine gitmek burada yardımcı olabilir.

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` 

Ve orada o

Sadece başka bir fikir geldi
+0

Ne yazık ki bu yardımcı olmadı. Tüm bu kütüphaneleri, hem Ubuntu'da (çalışmayan) hem de Debian'da (çalışma), ORBit dışında ve ORBit'in her ikisinde de eksik ... Ancak paketlerin kurulu olduğu, ancak kullanılmadığı veya düzgün kullanılmadığı anlamına gelebilir. – sm4

+0

Sadece 32 bit vs 64 bitlik bir durumun olmadığını kontrol ettiniz mi? – Tomas

+0

Her şey yolunda görünüyor, 64-bit. – sm4

0

:) var: Makefile ile kazma, ben bu içerir bulmak belki ltrace yerine strace kullanabilir?

ltrace -e open,access -f -o browse java -jar BrowseTester.jar 
İlgili konular