Προς το περιεχόμενο

Απορία για Java packages


dimnts

Προτεινόμενες αναρτήσεις

Δημοσ.

Γεια σας.Έχω ένα πακέτο java στο οποίο υπάρχουν κάποιες java classes.Το πρόβλημα είναι ότι σε αυτές που βρίσκονται μέσα στο πακέτο δεν μπορώ να χρησιμοποιήσω κλάσεις που βρίσκονται έξω από αυτό το πακέτο.Δηλαδή μια κλάση μέσα στο πακέτο καλεί μία που βρίσκεται έξω από αυτό.Πάντως τα έχω βάλει όλα package δηλώσεις, classpath κτλ.Τα δοκίμασα όλα!!!Μου βγάζει το λάθος ότι δε βλέπει την κλάση έξω από το πακέτο.Ευχαριστω προκαταβολικά.

Δημοσ.

To problima sou ean ta exeis kanei ola auta, fadazomai oti einai me ta paths. Prepei na uparxei adistoixia metaksu twn directory structure kai twn logical packages stin Java. Prosexe diladi px mia klasi B enos package A, na brisketai se ena arxeio B.java pou brisketai mesa se ena folder pou legetai A. Episis ama mesa sto B.java kaneis import tin klasi D enos package C, prepei to folder C na einai sto idio bathos akrivos me to folder A gia na to blepei.

 

Xmm, isws ta eipa ligo poluploka tora pou blepw ti egrapsa :-)

 

 

Δημοσ.

Αν και δεν μας δινεις και πολλες πληροφοριες..να υποθεσω οτι η κλαση εξω απο το πακετο δεν βρισκεται μεσα στο classpath οποτε δεν μπορει να την βρει.

 

το δευτερο μερος μιχαλη ειναι μαλλον λαθος! Το Πακετο απλα πρεπει να συμφωνει με αυτα που εχεις γραψει στο Import.

px

>
import papo.mypac.*;

πρεπει να βρισκοντε \papo\mypac\

 

αντιστοιχα στο class path οριζεις που βρισκεται..το πακετο..

Δημοσ.

Μου βγάζει το λάθος ότι δε βλέπει την κλάση έξω από το πακέτο.Ευχαριστω προκαταβολικά.

 

If in doubt it's a classpath issue. Αν καταχωρούσες το μήνυμα λάθους ίσως να μπορούσαμε να σε βοηθήσουμε.

Δημοσ.

Ayti einai h klasi mesa sto package:

 

package org.tempuri;

 

public class a {

 

public static void main(String[] args) {

HTMLWrapper wrapper = new HTMLWrapper(); wrapper.wrap();

}

}

 

H klasi HTMLWrapper (h opoia fisika perilambanei mia methodo wrap() ) brisketai eksw apo to package kai yparxei sto classpath.

Δημοσ.

dokimase na thn valeis se ena paketo (gia logous katharothtas kai organoshs)..kai kane thn import!

 

den vlepo import statement!

>
import extrapac.HTMLWrapper;

 

Δημοσ.

Paides doulepse kanontas ta ekshs:

 

Kanontas thn HTMLWrapper mono import den douleyei.An omws thn valeis mesa se ena paketo p.x.

 

package mypack;

 

public class HTMLWrapper {

//...

}

 

kai sthn a class thn kaneis import douleyei!

 

package org.tempuri;

import mypack.HTMLWrapper;

 

public class a {

 

public static void main(String[] args) {

HTMLWrapper wrapper = new HTMLWrapper(); wrapper.wrap();

}

}

 

Sas eyxaristw olous gia th boitheia...

 

Δημοσ.

> φαινεται οτι καναμε την ιδια στιγμη το ποστ..δεν σε ειδα ..Πανο! χεχεχεχ!

 

Χεχεχ τα μεγάλα πνεύματα πάντα συναντιούνται :-)

 

> Kanontas thn HTMLWrapper mono import den douleyei.An omws thn valeis mesa se ena paketo p.x.

 

Φυσικά αφού μπορείς να εισάγεις μόνο πακέτα. Αν η κλάση είναι μόνη της θα πρέπει να είναι στον ίδιο πακέτο με τις άλλες για να τη χρησιμοποιήσεις χωρίς να την εισάγεις (στη δική σου την περίπτωση στο org.tempuri).

Δημοσ.

Nai,alla giati afou ola yparxoun sto classpath (kai logika na prepei na douleyei etsi)na prepei h klasi pou einai ap'eksw (HTMLWrapper) na brisketai mesa se paketo?

Δημοσ.

Ειναι Java Mechanics! Οι κλασεις πρεπει να βρισκοντε σε ιεραρχικη δομη και οχι διασπαρτες εδω και εκει.

Δημοσ.

Ακριβώς. Γιατί αν είχες 100 κλάσεις από εδώ και από εκεί θα είχες ένα classpath ένα χιλιόμετρο... και άντε να βρεις μετά αν μία κλάση σου είναι μέσα στο classpath.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...