Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Import-ongelmia (Java)

Sivun loppuun

Paulus M [06.10.2006 10:11:36]

#

Laitoin windowsin asetuksista javac ja muut exet ympäristö muuttujaksi, mutta nyt ei onnistu luokkien linkittäminen.

Kun yritän kääntää jotain luokkaa, joka on samassa kansoissa ja sama package kun toisella, niin silti nämä luokat ei ymmärrä toisiansa? Tulee siis cannot resolve symbol Luokan_nimi.

Onko jollain joskus ollut vastaava ongelma? Olen ennen vanhalla kooneellani käyttänyt sujuvasti luokkia, mutta nyt on jotain ongelmia, ku ei voi edes importata omaa luokkaa komennolla "import Oma_package.Oma_luokka;" valitaa, ettei tätä Oma_luokkaa tunneta, vaikka oon kääntänyt sen jo. lisäksi siis kaikki luokat ovat samassa kansoissa ja oon vielä kirjoittanut luokan alkuun saman package nimen.Mikähän vois olla vikana?

A-P [06.10.2006 11:38:27]

#

Yritätkö kääntää luokkia erikseen vai yhdessä käskyllä javac *.java?. Jos erikseen kerro kääntäjälle, että mistä oma pakettisi löytyy eli javac -cp polku Luokka.java.

FooBat [06.10.2006 12:41:58]

#

Erityisesti se classpath (-cp) pitää asettaa koodipuun juureen eikä jonnekin paketin sisään.

Paulus M [07.10.2006 14:11:33]

#

Kiitti, toi kääntäminen ainakin toimi tällä javac *.java lausekkeella.

Mutta pitäiskö mun vielä määritellä tämä paketti jotenkin.
Sillä paketin luokkia ei voi pyörittää.

Tein tällaisen testin:

package Paulus.Apuluokat;

public class Kukko
{

	public static void main(String args[] )
        {
             System.out.println("toimii");
        }
}

ja nyt jos käännän ohjelman, niin kääntäminen toimii, mutta kun kokeilen ajoa, niin tulee pitkä lista virheitä:

java.lang.NoClassDefFoundError: Kukko(wrong name: Paulus\Apuluokat\Kukko)

Ja jos otan ton "package Paulus.Apuluokat;" pois, niin ajaminen onnistuu?

Missähän vielä vika?
Pitäiskö mun tehä vielä toi javac -cp "c:\java\..."
, sillä mulla se ei onnistunut ja antoin virhe ilmoitukset invalid flag: -cp.

FooBat [07.10.2006 15:09:32]

#

Joissakin javac:n versioissa -cp pitää korvata -classpath:illa.

Kai olet sijoittanut tuon luokan alihakemistoon koodihakemisto/Paulus/Apuluokat ja sitten kääntänyt koodit tyyliin "javac -cp koodihakemisto *.java" Apuluokat -hakemistossa tai "javac Paulus/Apuluokat/*.java" koodihakemistossa?

Kun ajat koodia pitää kukko käynnistää tyyliin "java -cp koodihakemisto Paulus.Apuluokat.Kukko".

Paulus M [08.10.2006 10:12:25]

#

Kiitti, homma toimii nyt!

_Pete_ [09.10.2006 12:38:10]

#

Kannattaa tutustua Ant:n käyttöön niin säästyy tällaisilta vaivoilta.

Paulus M [12.10.2006 23:07:09]

#

Kävin kattomassa tuota apache anttia, mutta ei se silti super simpppeli ohjelma kummiskaan oo....ihan hyvä kyl.

Nyt mulla ois vielä ongelmana appletin käynnistäminen. Se on samassa kansoissa ja oon sisällyttänyt sen html koodiin, mutta kun kirjoitan: appletviewer sivusto.html
tulee virhe ilmoitus:
noClassDefFoundError Naytto
(wrong name: Paulus/Apuluokat/Naytto)...

Tämän sivuston avaamaaminenkaan explorerissa ei auta.
sivustossa olen kirjoittanyt: <APPLET CODE="Naytto.class" WIDTH=300 HEIGHT=300></APPLET>

ja tämä class on siis käännettynä samassa kansoissa.

Oisko näissä vastaavanlaista -cp toimintoa taikka kuinka voisin saada homman toimimaan tuossa explorerissa?


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta