Avatar billede nbj1 Praktikant
21. maj 2003 - 16:43 Der er 29 kommentarer og
1 løsning

kald til et bibliotek

hejsa
hvis man nu har et projekt kaldet kalender.kpx hvor main ligger i og så der under et bibliotek som hedder kalender hvor klassens filer ligger, som så kalder de filer i den mappe hvordan gør man det?
jeg har prøvet med i main at sige import kalender.*;
men virker ikke lige efter hensigten.
lige som jeg kalder dato klassen og andet jeg har prøvet med classpath at ligge den ind kalender biblioteket men uden held.
Avatar billede arne_v Ekspert
21. maj 2003 - 17:13 #1
Hvilken IDE bruger du ?  (som har projekt filer der hedder .kpx)
Avatar billede arne_v Ekspert
21. maj 2003 - 17:15 #2
Generelt bør nogen ligende nedenstående virke:

dir\Main.java
-------------

// intet package direktiv

import kalender.*;

public class Main {

dir\kalender\Dato.java
----------------------

package kalender;

public class Dato {
Avatar billede nbj1 Praktikant
21. maj 2003 - 17:29 #3
//fil kal1:
package Kalender;

class Kal1
{
    byte dageImdr[] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
   
    // Retunere true hvis år er et skudår,
    // ellers retuneres false.
    boolean skudaar(int aar)
    {
        if ((aar % 400 == 0) || (aar % 4 == 0 && aar % 100 != 0) )
            return true;
        else
        {
            return false;
           
        }   
    }
   
    // Modtager årstall, månednummer og dag i måned.
    // Retunere dagnummer. (Den julianske dato).
    public int juliansk_dag( int aar, int mdr, int dag)
    {
        int i;
       
        for (i=1;i<mdr ;i++ )
       
            dag += dageImdr[i];
                if (mdr> 2 && skudaar(aar))
                    dag ++;
       
        return dag;
       
    }
   
}   

//fil TestKal1:
import Kalender.*;

public class TestKal1
{
    public static void main(String args[])
    {
        Kal1 a = new Kal1();
       
        System.out.println(a.juliansk_dag(2000,12,31));    
    }
}
og hvad mener du så lige?
Avatar billede arne_v Ekspert
21. maj 2003 - 17:44 #4
Hvis Kal1 ligger i et directory Kalender som ligger
lige under det directory TestKal1 ligger i, så burde det være
OK.

D.v.s. at problemet ligger så snarere i opsætningen af din IDE.
Avatar billede nbj1 Praktikant
21. maj 2003 - 17:45 #5
import opgaver.Kalender.*;

public class TestKal1
{
    public static void main(String[] args)
    {
        kal1 a = new kal1();
       
        System.out.println(a.juliansk_dag(2000,12,31));    
    }
}   
dette tyder på at virke men kommer med disse fejl:?
TestKal1.java:7: cannot resolve symbol
symbol  : class kal1 
location: class TestKal1
        kal1 a = new kal1();
                ^
TestKal1.java:7: cannot resolve symbol
symbol  : class kal1 
location: class TestKal1
        kal1 a = new kal1();
                            ^
2 errors
Avatar billede a-torsten Nybegynder
21. maj 2003 - 17:45 #6
Kalender skal ligge i en mappe som hedder Kalender.. Tror jeg nok.... Jeg er også ny med pakker ...
Avatar billede arne_v Ekspert
21. maj 2003 - 17:46 #7
PS:  Jeg formoder at du laver det her for at lære lidt Java. Der er
    en udmærket java.util.Calendar klasse som kan beregne det samme
    som du gør.
Avatar billede nbj1 Praktikant
21. maj 2003 - 17:51 #8
ja det er en test da jeg er under udd. som datamatiker 2 semester der har jeg et projekt hvor jeg har en gui bruger flade med 7 klasser og jeg har db klasser 10 stk til en oracle database og for at ikke blande de to klasser sammen var tanken at jeg i morgen kunne lave forbindelsen fra det ene bibliotek til det andet så skidtet ikke bliver blandet ssammen
Avatar billede arne_v Ekspert
21. maj 2003 - 18:56 #9
Det lyder meget fornuftigt.
Avatar billede bearhugx Nybegynder
21. maj 2003 - 19:47 #10
kpx?! .... hmmmm Det dufter af Kawa :-))
Avatar billede nbj1 Praktikant
21. maj 2003 - 19:48 #11
hmmm og hvad skulle den kommentar så lige hjælpe :)))))
Avatar billede bearhugx Nybegynder
21. maj 2003 - 19:49 #12
Nu er det 1½ siden jeg sidst rørte Kawa, men du skal huske at add'e Projektets path til din classpath - (det gøres i Project Options, så vidt jeg husker)
Avatar billede bearhugx Nybegynder
21. maj 2003 - 19:50 #13
Og som der så rigtigt nok er sagt - så skal Kal1.java ligge i et underbib som hedder Kalender (package-strukturen skal afspejles i fil/dir-strukturen....)
Avatar billede nbj1 Praktikant
21. maj 2003 - 19:51 #14
ja det har jeg oxo prøvet og i classpath men den henviser til et andet sted aligevel så jeg er ikke helt sikker på at jeg fanger det.
Avatar billede bearhugx Nybegynder
21. maj 2003 - 19:51 #15
1½ == 1½år i indlæg @ 19:49
Avatar billede bearhugx Nybegynder
21. maj 2003 - 19:53 #16
når du kører programmet, mener jeg at den udskriver hele classpathen i Output-vinduet - kan du ikke lige prøve at poste den ?
Avatar billede nbj1 Praktikant
21. maj 2003 - 20:02 #17
--------------------------- Compiler Output ---------------------------
TestKal1.java:1: cannot access Kal1
bad class file: c:\Program Files\java\school\Kal1.class
class file contains wrong class: Kalender.Kal1
Please remove or make sure it appears in the correct subdirectory of the classpath.
import Kal1;
^
1 error

c:\Program Files\java\school\Kal1.class der ligger den ikke og inden du siger det :) jo den ene fil kan jeg da bare smide der men dutter ikke se Kommentar: nbj1
21/05-2003 17:51:57
Avatar billede arne_v Ekspert
21. maj 2003 - 20:06 #18
Den ligger jo ikke i et Kalender subdirectory !
Avatar billede nbj1 Praktikant
21. maj 2003 - 20:10 #19
nej ikke efter det men det gør den, i  kalender ligger testkald1 og der under ligger et bibliotek mere kaldet kalender med filen kal1.
Avatar billede arne_v Ekspert
21. maj 2003 - 20:13 #20
Men den finder altså en anden Kal1.class - så det er nok opsætningen af
Kawa der skal ændres.
Avatar billede nbj1 Praktikant
21. maj 2003 - 20:54 #21
import Kalender.Kal1;

public class TestKal1
{
    public static void main(String args[])
    {
        Kal1 a = new Kal1();
       
        System.out.println(a.juliansk_dag(2000,12,31));    
    }
}   
hvis jeg prøver sådan tyder det på jeg fanger noget rigtigt da
jeg får følgende fejl:
TestKal1.java:1: Kalender.Kal1 is not public in Kalender; cannot be accessed from outside package
import Kalender.Kal1;
                ^
TestKal1.java:7: Kalender.Kal1 is not public in Kalender; cannot be accessed from outside package
        Kal1 a = new Kal1();
                ^
TestKal1.java:7: Kalender.Kal1 is not public in Kalender; cannot be accessed from outside package
        Kal1 a = new Kal1();
                            ^
TestKal1.java:7: Kal1() is not public in Kalender.Kal1; cannot be accessed from outside package
        Kal1 a = new Kal1();
                        ^
TestKal1.java:9: juliansk_dag(int,int,int) in Kalender.Kal1 is not defined in a public class or interface; cannot be accessed from outside package
        System.out.println(a.juliansk_dag(2000,12,31));    
                                    ^
5 errors
Avatar billede nbj1 Praktikant
21. maj 2003 - 20:56 #22
nogen der gider teste de to filer om der er fejl i dem kan ikke rigtigt se det men brokker sig lidt over juliansk_dag(int,int,int)?
Avatar billede arne_v Ekspert
21. maj 2003 - 20:58 #23
Erstat:

package Kalender;

class Kal1
{

med:

package Kalender;

public class Kal1
{
Avatar billede arne_v Ekspert
21. maj 2003 - 20:59 #24
Altså public foran class.
Avatar billede nbj1 Praktikant
21. maj 2003 - 21:01 #25
ja det har jeg oxo lige prøvet men det hjælper heller ikke læste oxo linie 9
Avatar billede arne_v Ekspert
21. maj 2003 - 21:04 #26
Hvilke fejl får du med public class Kal1 ?
Avatar billede nbj1 Praktikant
21. maj 2003 - 21:07 #27
TestKal1.java:1: cannot resolve symbol
symbol  : class Kal1 
location: package kalender
import kalender.Kal1;
                ^
TestKal1.java:7: cannot resolve symbol
symbol  : class Kal1 
location: class TestKal1
        Kal1 a = new Kal1();
                ^
TestKal1.java:7: cannot resolve symbol
symbol  : class Kal1 
location: class TestKal1
        Kal1 a = new Kal1();
                            ^
3 errors
Avatar billede arne_v Ekspert
21. maj 2003 - 21:39 #28
Hmm.

Er:

import kalender.Kal1;

blevet ændret til:

import Kalender.Kal1;

?
Avatar billede arne_v Ekspert
21. maj 2003 - 21:40 #29
Det skal matche package direktivet i Kal1.java !
Avatar billede arne_v Ekspert
11. juli 2003 - 19:29 #30
nbj>

Tid at lukke spørgsmålet ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester