Check alle échte Black Friday-deals Ook zo moe van nepaanbiedingen? Wij laten alleen échte deals zien

[JAVA] Package / import achterhalen. *

Pagina: 1
Acties:

  • arnekaas
  • Registratie: April 2006
  • Laatst online: 27-10-2020
Ik probeer een element package te importeren met de volgende code:

import element.*;

Ik heb het element package in de zelfde map staan als mijn java bestand, in zip formaat en uitgepakt in een map.

Als ik probeer te compilen krijg ik de volgende melding.
readFile.java:4: package element does not exist
import element.*;
^
1 error


Ik denk dat ik mij element package misschien in mijn classpath dir moet zetten, maar die kan ik dus niet vinden. Ik werk op leopard.

Alvast bedankt voor de tips

Arne Kaas


  • Gert
  • Registratie: Juni 1999
  • Laatst online: 07-11-2024
Heb je -cp . al geprobeerd? Je moet eventuele jar/zip bestanden appart noemen, dus -cp .:aap.jar

  • arnekaas
  • Registratie: April 2006
  • Laatst online: 27-10-2020
dit krijg ik dan. Ik snap het even niet... :)

Arne:java test arnekaas$ javac -cp:/Documents/Werk/AE2\ Project/java\ test/element.jar
javac: invalid flag: -cp:/Documents/Werk/AE2 Project/java test/element.jar
Usage: javac <options> <source files>
where possible options include:

Wat doe ik verkeerd?

Arne Kaas


  • den 150
  • Registratie: Oktober 2002
  • Niet online
spatie tussen java en test? quotes rond je classpath zetten dus
en vergeet niet je source files te specifieren

  • arnekaas
  • Registratie: April 2006
  • Laatst online: 27-10-2020
Er zitten spaties in mijn map naam. Wat zijn mijn source files dan precies? Zijn dat mijn zelf geschreven java bestanden?

Mijn programma ziet er nu als volgt uit.


import java.io.*;
import java.util.*;
import element.*;

public class readFile
etc..


Als ik compile geeft gij een error dat element.* niet gevonden kan worden. Waar moet ik die dan precies neer zetten? Ik kan die andere imports namelijk wel gewoon doen.

Arne Kaas


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 22:35

Creepy

Tactical Espionage Splatterer

arnekaas schreef op zaterdag 02 februari 2008 @ 01:24:
Er zitten spaties in mijn map naam. Wat zijn mijn source files dan precies? Zijn dat mijn zelf geschreven java bestanden?
Eh, wordt het dan niet eens tijd voor wat java en algemene programmeer tutorials of boeken ofzo? Als je je dit nog afvraagt is het misschien handig om de basis zaken nog eens een keer goed door te nemen
Mijn programma ziet er nu als volgt uit.


import java.io.*;
import java.util.*;
import element.*;

public class readFile
etc..


Als ik compile geeft gij een error dat element.* niet gevonden kan worden. Waar moet ik die dan precies neer zetten? Ik kan die andere imports namelijk wel gewoon doen.
Een class (Element zeer waarschijnlijk) zit in een package. Ik gok erop dat je Element class in een andere package zit dan waar jij denkt dat deze zit. In welke package deze zit zie je direct aan de eerste regel code in de source van je Element class of zal netjes beschreven staan in de documentatie. Daarnaast kan je ook in je jar kijken (dit is een rarzip bestand) om te kijken welke import je nu precies nodig hebt want de package naam kan je afleiden van de directory waar de class zich bevindt.

Maar nogmaals: dit is echt enorme basiskennis van Java. Eigenlijk verwachten we hier dat je je datzelf kunt aanleren. Dit staat op een hoop plekken prima uitgelegd.

Ik heb ook je titel wat aangepast want Java on Leopard zegt ons helemaal niks over het daadwerkelijke probleem. Zie ook *** Over topictitels in PRG - lezen voor topic openen!!! ***. En lees aub ook Programming Beleid - De Quickstart eens door zodat je weet wat we hier eigenlijk van je verwachten voordat je hier een topic opent.

[ Voor 14% gewijzigd door Creepy op 02-02-2008 13:49 ]

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • Gerco
  • Registratie: Mei 2000
  • Laatst online: 20-11 15:59

Gerco

Professional Newbie

@Creepy: Een jar file is een zip bestand, geen rar

Javac voorbeeldje:
gdrmbp:~ gerco$ javac -cp sonic_Client.jar Test.java 
gdrmbp:~ gerco$ java Test
!!Test!!


Je moet dus ook de java file die je wilt compileren aan javac geven. Dit kan wat onhandig zijn bij grotere programmas, daarvoor heb je natuurlijk ant (zit bij Mac OS X).

- "Als ik zou willen dat je het begreep, legde ik het wel beter uit!" | All number systems are base 10!


  • SPee
  • Registratie: Oktober 2001
  • Laatst online: 20-11 19:14
Heb je wel een package gedefinieerd in je classes?
Ik neem aan dat je de package 'element' zelf maakt?

Java:
1
2
3
4
5
6
7
8
9
10
package my.package

import java.io.*;
import java.util.*;
import element.*;

public class readFile
{
..
}



Is het niet handiger voor je om mbv je IDE te compileren?
Tip: netbeans, eclipse, www.java2s.com

[ Voor 3% gewijzigd door SPee op 02-02-2008 12:20 . Reden: blijkbaar kan de code tag geen opmaak tag aan ;) ]

let the past be the past.


  • redfox314
  • Registratie: December 2004
  • Laatst online: 07-11 14:35
Volg gelijk ook even de coding conventies voor package names.

bvb als ik voor school een package element zou hebben gemaakt in project project dan zou dat deze volledig gequalifieerde naam krijgen.

be.ac.ua.project.element

of

be.ac.ua.rdillen.project.element

gebruik trouwens zeker een IDE. het java classpath is unwieldy zonder.

[ Voor 10% gewijzigd door redfox314 op 02-02-2008 13:24 ]


  • arnekaas
  • Registratie: April 2006
  • Laatst online: 27-10-2020
Bedankt voor alle tips en info. Heb inmiddels Eclips en dat werkt prima. Hoe het importer daar werkt weet ik nog steeds niet, maar daar kom ik met de handleiding wel uit.

Het element package waar ik het over had is een class met oa ConsoleWindow. Ik heb het probleem nu opgelost met de JOption class.

Mijn vraag blijft alleen nog steeds staan. Waar staat de directorie waaruit leopards voorgeinstaleerde JVM zijn imports vandaan haald? Ik heb wel de directorie /System/Libary/Frameworks/JavaVM.framework/version gevonden, maar als ik mijn element packadge daar in de map zet, dan vind hij hem dus niet. En ook neit als ik hem in mijn project directorie zet.

Arne Kaas


  • Herko_ter_Horst
  • Registratie: November 2002
  • Niet online
Het is NIET de bedoeling om je eigen code daar neer te zetten. Werk met -cp, ga niet zitten klooien met code/classes binnen de Java installatie directory. Vertrouw ook niet op een IDE als je classpath nog niet onder de knie hebt, dat levert alleen maar problemen op.

Als je code in /src/dir staat, je eigen classes in het package fully.qualified zitten en je gebruikt daarnaast code uit een jar file, bijvoorbeeld: /lib/jars/element.jar; dan zijn de commando's als volgt:
code:
1
2
javac -cp /src/dir:/lib/jars/element.jar /src/dir/fully/qualified/*.java
java -cp /src/dir:/lib/jars/element.jar fully.qualified.ClassName


Bij javac geef je dus bestandsnamen op (van .java bestanden), bij java geef je een classname op. Na -cp volgt dan een spatie (dus geen dubbel punt) en vervolgens alle elementen van het pad gescheiden door : op Unix-achtigen, waaronder OSX, of ; op Windows (dus geen spaties). De elementen van het pad kunnen directory-namen of jar-bestandsnamen zijn. Binnen padnamen op Unix-achtigen gebruik je /, op Windows \ (en dus niet allebei door elkaar). Heb je binnen een padnaam een spatie (bijvoorbeeld: C:\Mijn Documenten\), dan zet je dubbele quotes om het hele pad.

[ Voor 0% gewijzigd door Herko_ter_Horst op 04-02-2008 19:39 . Reden: Typo ]

"Any sufficiently advanced technology is indistinguishable from magic."

Pagina: 1