Strona 1 z 1

[Java] Środowisko wykonania.

: 26 kwie 2011, 20:41
autor: mszubart
Mam kilka pytanek do ubuntowych programistów Javy.
Otóż, próbując zająć się Javą na ubu, napotkałem kilka dziwnych problemów (na pracowym Ubuntu 10.10):

1. Dlaczego ubuntu wie lepiej której odmiany JRE/JDK ja chcę użyć?

1.1 Instalacja sun-java6-{jre, jdk}. No fajnie, nie wybrzydza, nie trzeba kombinować OK
1.2 Instalacja maven2. "Wymagany jest pakiet openjdk-6..." Co? Ale ja mam sun java i wcale nie chcę tego muła (czyt. OpenJDK).
Dobra niech będzie - hdd 320GB, openJdk się zmieści, może...
1.3 Instalacja librxtx-java. Nie muszę mówić, że zainstalowało się gdzieś w eterze i nie dostąpiłem łaski automatycznej aktualizacji classpath.

Macie jakiś elegancki sposób wymuszenia, żeby wszystko co instaluję do Javy, było w jednym miejscu (może jest, tylko gdzie?) ?

2. Dlaczego czcionki Javy są takie dla babci, znaczy jakieś 18px i cały interfejs wygląda jak pianka w pojemniku próżniowym?
Tyczy się to NetBeans, Eclipse oraz moich aplikacji.

3. Portable!
Jar na pendrive (NTFS, bo windows też widzieć musi) -> double-click -> "Aby uruchomić ten program, musi mieć on ustawiony bit wykonania"
OK, bez obaw (jak POPR mawiał)

10: PPM -> Uprawnienia -> [x] Zezwalaj na wykonanie
<kilkanaście milisekund później>
[ ] Zezwalaj na wykonanie
20: goto 10

Przeleciałem przez tą pentelkę z 10 razy.
Szybka myśl => skrypcik. G prawda... skrypcik też musi być +x.
Oczywiście z roota chmod +x też nie wchodzi

Pytanie jest takie: Czy macie jakiś sposób na odklikanie swojego programu z pena? Czy będę musiał usunąć "portable" z nazwy pliku? :/

Dzięki z góry, za podzielenie się doświadczeniem.

Re: [Java] Środowisko wykonania.

: 26 kwie 2011, 21:26
autor: Dwimenor
3. Portable!
Cały problem wynika z tego, że partycje NTFS nie obsługują posixowych bitów praw dostępu do plików. Nie, FAT też nie obsługuje.

Re: [Java] Środowisko wykonania.

: 26 kwie 2011, 21:33
autor: mszubart
A dlaczego w 10.04 obsługiwał :) ?
Never mind.
Bardziej interesują mnie punkty 1 i 2 (1 szczególnie)

Re: [Java] Środowisko wykonania.

: 28 kwie 2011, 00:18
autor: Heos
2. Nie mam pojęcia czego się czepiasz czcionek, może zapodaj jakiś zrzut ekranu aby było widać co Ci nie pasuje?

Re: [Java] Środowisko wykonania.

: 28 kwie 2011, 17:44
autor: mszubart
@Heos: Ot, proszę:
Obrazek
Czcionki są zbyt duże (i nie reagują na zmiany w ustawieniach systemowych). Cały interfejs jest zbyt rozwleczony (popatrz na toolbar).
Na dużym ekranie, nie robi różnicy, ale na laptopie znacząco utrudnia pracę.
Nie jest to tylko problem z Eclipse, a ogólnie z aplikacjami Java.
Zgaduję, że JVM używa jakiejś super domyślnej czcionki. Wiesz może czy da się coś z tym zrobić?

Re: [Java] Środowisko wykonania.

: 28 kwie 2011, 18:08
autor: Dario84
1 mavena nie uzywalem ale fakt openjdk od razu do kosza i kibicuje bys sobie poradzil bez tego otwartego shita.
1.3 rxtx mozesz sobie samemu recznie zainstalowac ale tak czy inaczej to gdzies wyladowalo w /usr/lib/jvm/..
mała pomoc do biblioteki tutaj: http://rxtx.qbang.org/wiki/index.php/In ... n_on_Linux
http://rxtx.qbang.org/wiki/index.php/Us ... In_Eclipse
Aha, jeszcze jedno ja jednak zalecałbym korzystanie moze z mniej wygodnego ale poprawniej dzialającego comm jara.
Przy okazji duzych danych lecacych po RSie na rxtx bufor bezpowrotnie tracił cześć pakietów :clap:
Chociaż w commjarze sa jakies wycieki pamieci ale to juz detal :razz:

2. ogolnie to swing pod linuxem korzysta z GTK co jest niezbyt szczesliwe i widzialem juz wiele kwiatkow graficznych i raczej nic z tym nie zrobisz. W tworzonych aplikacjach w przypadku linuxa nie korzystałbym z systemowego look and feel tylko javowego. A w przypadku odpalania na windowsie juz uzywalbym spokojnie systemowego look and feela.

3. chmod +x plik.jar ?

10. nie rozumiem ?

Re: [Java] Środowisko wykonania.

: 28 kwie 2011, 19:49
autor: mszubart
@Dario84: Dzięki wielkie :)
1. Znaczy, że elegancki sposób nie istnieje i wszystko trzeba ręcznie instalować (tak jak myślałem)
2. A dałoby się wymusić, np. na Netbeans, żeby nie używało systemowego stylu?
3. Niestety, gdyby ta sztuczka była taka prosta, to bym sobie sam poradził. chmod +x plik.jar próbowałem też z roota i nic.

A punktu 10 niema - to tak na BASICa stylizowane, żeby dramaturgii dodać (na basicowych listingach się numerowało linie i jakoś tak wszyscy zaczynali od 10 i zwiększali o 10).
Miało to zilustrować, jak bardzo zapieniłem się gdy checkbox przy "Zezwalaj na wykonanie" sam się odznaczył.
Aż mi się ten filmik przypomniał.

Re: [Java] Środowisko wykonania.

: 28 kwie 2011, 19:57
autor: Dario84
2. nie sadze by sie dało zmienic look and feel przygotowanej aplikacji chyba ze jakies atrybuty uruchomieniowe aplikacji na to zezwalaja.
To jest kawałek kodu wewn. aplikacji , np.

Kod: Zaznacz cały

UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
Z drugiej strony tak sie przygladam temu screenowi i nei widze jakichs specjalnie duzych czcionek, hm? Zreszta u siebie tez nie widze zadnych kwiatkow z samymi eclipsami.

3. Ja ogólnie nie czaje po co Ci to. Przygotuj dwa skrypty jeden plik.bat drugi plik.sh i z nich bedziesz odpalał jar'a w zaleznosci od systemu.
Nie ma w tym nic zdroznego i tak sie po prostu robi.

OT. zabawka fajna ;)

Re: [Java] Środowisko wykonania.

: 28 kwie 2011, 20:43
autor: mszubart
Tak, mogę zrobić skrypt, ale jemu też muszę nadać uprawnienia wykonania itd...
Swoją drogą screen jest badziewny.

Doszukałem się, że na NetBeans pomaga

Kod: Zaznacz cały

/opt/netbeans-7.0/bin/netbeans --laf com.sun.java.swing.plaf.windows.WindowsLookAndFeel
co ciekawe com.sun.java.swing.plaf.metal.MetalLookAndFeel nie działa, a ten windowsowy to Metal (dziwne)

Re: [Java] Środowisko wykonania.

: 28 kwie 2011, 21:31
autor: Dario84
co ciekawe com.sun.java.swing.plaf.metal.MetalLookAndFeel nie działa, a ten windowsowy to Metal (dziwne)
Metal to nie jest windowsowy tylko wlasnie uniwersalny, o ktorym mowilem wyzej. (Wiecej info w linku nizej)

Jak poczytalem tutaj http://download.oracle.com/javase/tutor ... /plaf.html
mozna tez zrobic tak :
Specifying the Look and Feel: Command Line

You can specify the L&F at the command line by using the -D flag to set the swing.defaultlaf property. For example:

java -Dswing.defaultlaf=com.sun.java.swing.plaf.gtk.GTKLookAndFeel MyApp

java -Dswing.defaultlaf=com.sun.java.swing.plaf.windows.WindowsLookAndFeel MyApp

Specifying the Look and Feel: swing.properties File

Yet another way to specify the current L&F is to use the swing.properties file to set the swing.defaultlaf property. This file, which you may need to create, is located in the lib directory of Sun's Java release (other vendors of Java may use a different location). For example, if you're using the Java interpreter in javaHomeDirectory\bin, then the swing.properties file (if it exists) is in javaHomeDirectory\lib. Here is an example of the contents of a swing.properties file:

# Swing properties
swing.defaultlaf=com.sun.java.swing.plaf.windows.WindowsLookAndFeel

Re: [Java] Środowisko wykonania.

: 28 kwie 2011, 21:38
autor: mszubart
Dario84 pisze:
co ciekawe com.sun.java.swing.plaf.metal.MetalLookAndFeel nie działa, a ten windowsowy to Metal (dziwne)
Metal to nie jest windowsowy tylko wlasnie uniwersalny, o ktorym mowilem wyzej.
Wiem, dlatego mnie dziwi czemu Metal nie działa, a windowsowy ładuje się jako Metal, ale to chyba już wykracza poza granice mojej percepcji.

Niestety, plik swing.properties nie jest nadrzędny:
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html pisze:How the UI Manager Chooses the Look and Feel

Here are the look-and-feel determination steps that occur when the UI manager needs to set a L&F:

1. If the program sets the L&F before a look and feel is needed, the UI manager tries to create an instance of the specified look-and-feel class. If successful, all components use that L&F.

2. If the program hasn't successfully specified a L&F, then the UI manager uses the L&F specified by the swing.defaultlaf property. If the property is specified in both the swing.properties file and on the command line, the command-line definition takes precedence.

3. If none of these steps has resulted in a valid L&F, Sun's JRE uses the Java L&F. Other vendors, such as Apple, will use their default L&F.

Re: [Java] Środowisko wykonania.

: 28 kwie 2011, 21:41
autor: Dario84
Wiem, dlatego mnie dziwi czemu Metal nie działa, a windowsowy ładuje się jako Metal, ale to chyba już wykracza poza granice mojej percepcji.
Bo systemowy look and feel dziala tylko pod danym systemem.
Mysle ze podobnie com.sun.java.swing.plaf.gtk.GTKLookAndFeel moze nei dzialac pod windowsem (moze jak sie dodatkowo doinstaluje GTK, w sumie ciekawe)

Hhmm co to znaczy ze Metal nie działa?

Re: [Java] Środowisko wykonania.

: 28 kwie 2011, 22:40
autor: mszubart
Dario84 pisze:
Hhmm co to znaczy ze Metal nie działa?
To znaczy, że --laf com.sun.java.swing.plaf.metal.MetalLookAndFeel nie przełącza wyglądu na Metal, tylko domyślnie wraca do GTk,
natomiast com.sun.java.swing.plaf.windows.WindowsLookAndFeel przełącza na Metal.

Re: [Java] Środowisko wykonania.

: 28 kwie 2011, 23:01
autor: Dario84
aa no to teraz rozumiem co miales na mysli, hm to faktycznie dziwne :pt36:

Re: [Java] Środowisko wykonania.

: 29 kwie 2011, 11:55
autor: Heos
Nie mam pojęcia czemu się czepiasz czcionek, dla mnie to wygląda normalnie.

Re: [Java] Środowisko wykonania.

: 29 kwie 2011, 13:28
autor: beluosus
Ad 3. Kwestia bezpieczeństwa. Montujesz napęd z flagą noexec? Jeśli tak to usuń ją, jeśli nie to spróbuj dać exec.

Re: [Java] Środowisko wykonania.

: 29 kwie 2011, 13:58
autor: mszubart
@beluosus: montuję go automatycznie, więc pewnie gdzieś jest to w HALu zaszyte.
@Heos: czepiam się, bo są większe od systemowych i zabierają dużo miejsca na ekranie laptopa.