[Java] ANT alleen opgegeven jars in classpath

Pagina: 1
Acties:
  • 128 views sinds 30-01-2008
  • Reageer

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
ik heb vanmorgen een paar uur op een class ambiguiteits fout gezeten, en nu blijkt dat die k*t classe in een jar file stond die in mijn systeem properties staat. Ik wil dus onder ANT alleen mijn opgegevens jars laten gebruiken en verder niets. Hoe krijg ik dit voor elkaar?

Ik heb de docs al bekeken maar die zijn eigelijk bijzonder mager...dus geen opmerking over de search aub :)

  • TrendKiller
  • Registratie: Januari 2001
  • Laatst online: 02-07 13:03
Je kan als je compiled je classpath meegeven. bv:

<javac srcdir="${java.source.dir}"
destdir="${java.build.dir}"
deprecation="on"
nowarn="on"
classpath="${build.classpath}"
includes="bla/**/*.java"
/>

met in je classpath de jars die je wil gebruiken uiteraard :)

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
code:
1
2
3
4
5
6
7
8
9
10
11
12
    <target name="compileExpertSysteem" depends="compileUtil,compileJipe">      
        <!-- Compile the java code from ${src} into ${build} -->
        <javac srcdir="${src}/expertSysteem/src/" destdir="${build}/expertSysteem">
            <classpath>
                <!--pathelement path="${classpath}"/-->
                <pathelement path="${build}"/>
                <fileset dir="${lib}">
                    <include name="**/*.jar"/>
                </fileset>
            </classpath>
        </javac>
    </target>

En met deze code maakt hij wel gebruik van jars die niet in de lib dir staan.

  • TrendKiller
  • Registratie: Januari 2001
  • Laatst online: 02-07 13:03
Misschien gaat hij eerst kijken naar het standaard classpath en als hij de jars ed. daar niet vind, gaat hij pas naar het classpath kijken dat jij opgeeft.
Kijk eens naar het classpath of de jars die jij niet wilt gebruiken daar in staan. Als deze erin staan, haal ze er dan eens uit en compileer opnieuw, als ze er niet instaan :?

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Op vrijdag 07 december 2001 14:58 schreef Trendkiller het volgende:
Misschien gaat hij eerst kijken naar het standaard classpath en als hij de jars ed. daar niet vind, gaat hij pas naar het classpath kijken dat jij opgeeft.
Kijk eens naar het classpath of de jars die jij niet wilt gebruiken daar in staan. Als deze erin staan, haal ze er dan eens uit en compileer opnieuw, als ze er niet instaan :?
Ik wil niet controleren of bep jars in mijn classpath staan (omdat ik veel java progs heb draaien). Maar ik wil gewoon compileren met de door mij meegegeven jars en al het andere is fout. Een ander voordeel aan deze aanpak is dat ik meteen kan zien of ik jar files mis (in mijn lib).

  • TrendKiller
  • Registratie: Januari 2001
  • Laatst online: 02-07 13:03
Kijk eens naar deze link http://jakarta.apache.org/ant/manual/index.html en neem dan build.sysclasspath. Hierin staat dat je het sysclasspath kan uitzetten zodat hij alleen het classpath gaat gebruiken dat jij geeft, alleen weet ik niet hoe je dat doet :) (als je het vindt, kan je het hier dan ook zetten?)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Ik doe het altijd zo:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<path id="project.class.path">
   <pathelement path="${classpath}" />
   <fileset dir="src/lib/">
    <include name="**/*.jar"/>
    </fileset>
</path>


<target name="compile">
    <mkdir dir="${build.dir}"/>
    <javac srcdir="${src.dir}/java" destdir="${build.dir}" deprecation="on" bootclasspath="/usr/local/java/generics-ea/collect.jar;/usr/java/j2sdk1.4.0/jre/lib/rt.jar;/usr/java/j2sdk1.4.0/jre/lib/jce.jar">
       <include name="**/*.java"/>
       <classpath refid="project.class.path"/>      
    </javac>
</target>

Ik neem aan dat wanneer je:
code:
1
   <pathelement path="${classpath}" />

Uit de path definitie weghaald, dat je dan bereikt wat jij wilt :) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Die bootclasspath kan je weglaten als je niet het Java Generics prototype gebruikt...

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Op vrijdag 07 december 2001 20:46 schreef mbravenboer het volgende:
Ik neem aan dat wanneer je:
code:
1
   <pathelement path="${classpath}" />

Uit de path definitie weghaald, dat je dan bereikt wat jij wilt :) .
Dat heb ik gedaan en toch neemt hij een vamp.jar mee, die ik al niet eens in de classpath had staan (met vamp (ook voor ant) kun je jnlp bestanden laten genereren). Ik heb het er eerst maar van mijn schijf afgehaald en vind het echt heel raar.
Die bootclasspath kan je weglaten als je niet het Java Generics prototype gebruikt...
Die gebruik ik (nog) niet :)

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Alarmnummer: Dat heb ik gedaan en toch neemt hij een vamp.jar mee, die ik al niet eens in de classpath had staan
Owh... vreemd. hum, dan weet ik het ook niet... Ik ken Ant ook niet door en door, maar ik neem aan dat de manual je probleem wel op kan lossen?
Die gebruik ik (nog) niet :)
Schande, prototypes en early access software regeren ;) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Zijn er ook tools voor dit soort ambiguiteits errors? Ik heb het gedaan met zoeken naar class file (ook door jars) en zodoende kwam ik hem tegen.

[offtopic->mbravenboer-of-andere-linux-gebruiker]
Ik ben sinds lange tijden weer met linux aan het spelen en waar is de standaard plek om tools zoals ant te installeren?
[/offtopic->mbravenboer-of-andere-linux-gebruiker]

Verwijderd

Op zaterdag 08 december 2001 12:22 schreef Alarmnummer het volgende:
[offtopic->mbravenboer-of-andere-linux-gebruiker]
Ik ben sinds lange tijden weer met linux aan het spelen en waar is de standaard plek om tools zoals ant te installeren?
[/offtopic->mbravenboer-of-andere-linux-gebruiker]
Dat hangt een beetje van je distro af... Meestal is het gebruikelijk dat je ze ergens in de map /usr zet.
Ik heb op mijn systeem bijvoorbeeld een mapje /usr/java aangemaakt. Daar heb ik ook m'n JDK's staan.
Ik heb daar Ant bijgezet. dus /usr/java/ant

Om ant dan te kunnen runnen moet je het bin path van ant wel toevoegen aan je $PATH variabele.
Je kunt het natuurlijk ook zetten in /usr/local/bin of zo. Die staat waarschijnlijk al in je $PATH dus hoef je 'm niet meer toe te voegen.

  • mbravenboer
  • Registratie: Januari 2000
  • Laatst online: 06-11-2025
Ik gebruik verschillende locaties. Voor grote applicaties neem ik meestal /opt/naam-van-applicatie, voor kleine applicaties meestal /usr/naam-van-applicatie. Voor Java heb ik inderdaad ook een subdir usr/java :) .

Ik ben er absoluut geen voorstander van het installerenn van applicaties met /usr/local als root... Alles komt dan door elkaar te staan en dat vind ik een heel raar idee :? . Ik maak liever voor elke applicatie een eigen dir en pas dan even m'n PATH aan of maak een linkje in usr/bin.

Ik ben zelf ook nogal newbie dus weet helemaal niet of dit wel volgens alle conventies is, maar het werkt goed :) .

Blog, Stratego/XT: Program Transformation, SDF: Syntax Definition, Nix: Software Deployment


Verwijderd

Ik heb net de samples voor Webservices geinstalleerd die bij java.sun.com te vinden zijn. Daarin zit ant, maar nergens is te vinden welke classes in m'n classpath moeten zitten. gevolg bij het runnen van ant:

Exception in thread "main" java.lang.NoClassDefFoundError: and

|:(

Kan iemand hier een liggie op schijnen?

  • Glimi
  • Registratie: Augustus 2000
  • Niet online

Glimi

Designer Drugs

(overleden)
Met zoveel informatie dit topic gaan kicken :? Logisch

Ik was al bijna van plan Alarmnummer te gaan stalken :P

Verwijderd

Op woensdag 10 juli 2002 14:39 schreef Glimi het volgende:
Met zoveel informatie dit topic gaan kicken :? Logisch
Wat had u meer gehad willen hebben?

Kwil ant runnen, maar wat is daar voor nodig aan jars? Heb ant.jar opgenomen evenals jaxp-api.jar, maar da's verkeerd / niet genoeg...

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024
Ik neem dat je werkt onder windows. Ga eens naar een dosprompt en type daar in 'SET'. Je krijg dat alle environment variablen te zien, met hun waarden. Je moet dan de classpath variable even opzoeken, en kijken of die jar van ANT daar ook in voorkomt.

Verwijderd

Op woensdag 10 juli 2002 23:52 schreef Alarmnummer het volgende:
Ik neem dat je werkt onder windows. Ga eens naar een dosprompt en type daar in 'SET'. Je krijg dat alle environment variablen te zien, met hun waarden. Je moet dan de classpath variable even opzoeken, en kijken of die jar van ANT daar ook in voorkomt.
Werk op Win2K.

CLASSPATH="C:\Documents and Settings\user\jwsdp-1_0\lib\ant.jar";"C:\app\jdk\lib\dt.jar";"C:\app\jdk\lib\tools.jar";"C:\app\jdk\src.jar;C:\Documents and Settings\user\jwsdp-1_0\common\lib\jaxp-api.jar;C:\app\CLASSES\parser.jar;

Zou zeggen van wel dus.

  • farlane
  • Registratie: Maart 2000
  • Laatst online: 00:13
Volgens mij moet je .\ ook aan je classpath toevoegen ?

Somniferous whisperings of scarlet fields. Sleep calling me and in my dreams i wander. My reality is abandoned (I traverse afar). Not a care if I never everwake.


Verwijderd

Op donderdag 11 juli 2002 10:01 schreef farlane het volgende:
Volgens mij moet je .\ ook aan je classpath toevoegen ?
Heeft vast alleen zin als er bepaalde classes in staan he?

  • Bobco
  • Registratie: Januari 2001
  • Laatst online: 30-10-2023

Bobco

I used to dream about Verona.

Op donderdag 11 juli 2002 09:31 schreef Drimmel het volgende:

[..]

Werk op Win2K.
Snipped CLASSPATH
Zou zeggen van wel dus.
Je hebt ANT_HOME dus ook goed staan?

With the light in our eyes, it's hard to see.


Verwijderd

Op donderdag 11 juli 2002 12:32 schreef Bobco het volgende:
Je hebt ANT_HOME dus ook goed staan?
Verwijst naar de dir waar ant, ant.bat, antRun en antRun.bat staan. Is btw niet dezelfde dir als waar de .jar in staat.

  • Bobco
  • Registratie: Januari 2001
  • Laatst online: 30-10-2023

Bobco

I used to dream about Verona.

Op donderdag 11 juli 2002 13:33 schreef Drimmel het volgende:

[..]

Verwijst naar de dir waar ant, ant.bat, antRun en antRun.bat staan. Is btw niet dezelfde dir als waar de .jar in staat.
Mmh, als ik in mijn settings kijk dan verwijst ANT_HOME naar de 'root' van de Ant installatie. In mijn PATH staat wel een verwijzing naar de /bin directory waar jij je ANT_HOME naar laat wijzen.

Wijzig ANT_HOME eens naar de rootdir van Ant en kijk dan nog eens wat er gebeurt...

With the light in our eyes, it's hard to see.


Verwijderd

Op donderdag 11 juli 2002 15:45 schreef Bobco het volgende:

[..]

Mmh, als ik in mijn settings kijk dan verwijst ANT_HOME naar de 'root' van de Ant installatie. In mijn PATH staat wel een verwijzing naar de /bin directory waar jij je ANT_HOME naar laat wijzen.

Wijzig ANT_HOME eens naar de rootdir van Ant en kijk dan nog eens wat er gebeurt...
Done, maar zelfde resultaat. Misschien dat iemand die ook jwsdp-1_0 heeft draaien er wat meer over kan zeggen (want dat is waar ik ant kado bij kreeg).

Verwijderd

Op vrijdag 12 juli 2002 10:55 schreef Drimmel het volgende:
Done, maar zelfde resultaat. Misschien dat iemand die ook jwsdp-1_0 heeft draaien er wat meer over kan zeggen (want dat is waar ik ant kado bij kreeg).
Nou, hij doet het. Geen idee waar het nou echt aan heeft gelegen, maar voor het nageslacht even settings voor ant icm jwsdp-1_0 die het bij mij doen:

* clean install van jwsdp-1_0-windows-i586.exe in D:\jwsdp-1_0 met de JDK in C:\jdk

* Zet in autoexec.bat PATH=C:\jdk\bin;D:\jwsdp-1_0\bin;%PATH%
* Zet in autoexec.bat set JWSDP_HOME=D:\jwsdp-1_0
* Zet in autoexec.bat set JAVA_HOME=C:\jdk

Zet in je user directory (Bijv. C:\Documents and Settings\user) een build.properties die luidt:
username=<<username uit setup>>
password=<<password uit setup>>

En draaien maar...
Pagina: 1