Mitenkähän tuo NetBeans on toteutettu ?
Itseäni ei tyydyttänyt muualla esitetyt vaihtoehdot, miten toteuttaa ifdef - endif javaan.
Mutta asian voisi ehkä ratkaista toisinkin:
JOS NetBeans tekee käännöksensä kutsumalla ulkoista javac -komentorivikääntäjää, silloinhan olisi helppo uudelleennimetä vaikkapa javac -> javac_001, ja tehdä oma ohjelma nimeltä javac, joka:
1. Muuntaa lähdekooditiedostoa siinä olevien ifdef:ien mukaan (ja mahdollisesti varmuuskopioi sen ennen muutoksia)
2. kutsuu alkuperäistä javac:tä, joka siis on uudelleennimetty javac_001:ksi
3. muuntaa lähdekooditiedoston takaisin alkuperäiseksi tai palauttaa siitä tekemänsä varmuuskopion
Tämän idean toteutusmahdollisuuksien selvittämiseksi päätin etsiä omasta pc:stäni javac -nimiset tiedostot.
Koska olen asentanut NetBeansin linuxiin käyttäjätunnuksella mika, niin niitä köytyi 2 kpl:
/home/mika/jdk1.6.0/bin/javac
/home/mika/netbeans-5.5/mobility7.3/_jvm/bin/javac
molemmat samalla md5 -summalla:
b8d1525c8953387161b5ab3e72633e53
Koska tuo Mobility pack 7.3 ei ole netBeansin kiinteä osa, olettaisin NetBeansin käyttävän tätä:
/home/mika/jdk1.6.0/bin/javac
komentorivikääntäjää java -lähdekoodin kääntämiseen.
Niinpä loin hakemiston
/home/mika/jdk1.6.0/bin/backup
ja *siirsin* tuon javac -tiedoston sinne hakemistosta /home/mika/jdk1.6.0/bin/
Kun nyt yritin kääntää NetBeansistä käsin java -lähdekoodia,yllätyin hieman, kun tulos näytti tältä:
"BUILD SUCCESSFUL (total time: 0 seconds)"
odottamani "javac compiler not found" -ilmoituksen sijasta.
Onko tuo kääntäjä siis jotenkin integroitu NetBeansiin, vai miksi sen siirtäminen NetBeansin ulottumattomiin ei estä kääntämistä NetBeansissä ?
Seuraava askel olisi ollut oman ohjelman tekeminen javac -nimelle, ja oma ohjelma olisi alkuvaiheessa vain kutsunut alkup. kääntäjää, ja samalla kirjoittanut parametrit lokitoedostoon myöhempää analysointia varten.
Täytynee vielä kokeilla tuo MobilityPackissa olevan javac:n siirto myös NetBeansin ulottumattomiin, mutta jos sekään ei tehoa, mitä seuraavaksi ?
Netbeans -toteutus ?
1
239
Vastaukset
- Mika0800
Lueskelin juuri NetBeans help -tekstejä, ja niistä löytyi tällaisia:
//#ifdef identifier
//#endif
sekä
//#if expression
//#endif
Nyt kun vielä keksisi, mitä pitää tehdä, jota niitä voisi käyttää näin:
//#ifdef j2me
// Tähän koodia, joka on voimassa vain j2me -ympäristössä
//#endif
//#ifdef j2se
// Tähän koodia, joka on voimassa vain j2se -ympäristössä
//#endif
Eli jos ei NetBeans IDE itse osaa määritellä noita j2me ja j2se, minne ne voi laittaa, ettänuo ifdefit näkevät niiden arvon ?
Outoa muuten sinänsä, että kun luin myös netistä useita googlen löytämiä sivuja aiheesta java ja ifdef, niin niissä lähinnä kommentoidaan tyyliin "jos ei Sun toteuta ifdef:ejä, niin yhteisö sen tulee tekemään, kenties useilla keskenään epäyhteensopivilla tavoilla".
Mutta NetBeans 5.5:ssäne ilmeisesti on jo toteutettu, ja eikös NetBeans ole Sun Microsystemsin tuote, joten ongelmahan on periaatteessa jo ratkaistu.
Joskus näköjään googletus voi johtaa pahasti harhaan !
Ketjusta on poistettu 0 sääntöjenvastaista viestiä.
Luetuimmat keskustelut
- 521667
Hakkarainen: persut Venäjän ja Pohjois-Korean tiellä
Hakkarainen entisenä persujen kärkipoliitikkona tietää, mitä puhuu. https://www.is.fi/politiikka/art-2000010422614.html1721506Fuengirola.fi: Kohuissa rypenyt Jari Sillanpää, 58, harvinaisessa haastattelussa: "Minä haluan..."
Ex-tangokuningas on kertonut kuulumisiaan Espanjan Aurinkorannikolta. Että ei muuta kuin elämässä etiäpäin, Jari Sillanp201042Ilouutinen! Anniina Valtonen heitti jymy-yllätyksen - Tämä ei jätä kylmäksi!
Ohhoh, tämäpä ylläri! Anniina Valtonen sai puolisonsa kanssa lapsen viime vuoden lopulla. Lue lisää: https://www.suomi29938Ootko muuten vieläkään hiffannut
Että en kuulu sinun maailmaasi? On meissä samaa, ja samaa aaltopituutta oli, mutta tunsin oloni usein hyvin vaivautuneek115853- 48769
Miten nyt sanoisin
tämän sinulle. Oletko mielessäni päivittäin, kysyin itseltäni ja vastaus oli, kyllä olet. Yllätyin, päädyin oudoille tei38738- 55631
- 53609
Oletko joskus pieni ja haavoittuva
vai oletko aina vahva, miltä aina vaikutat? Nainen, oletko koskaan väsynyt ja haavoilla? Yritätkö silti pitää julkisivua51608