webForumDet fria alternativet

Starta ett project i Eclipse + Ant

3 svar · 651 visningar · startad av erciz

ercizMedlem sedan maj 20011 880 inlägg
#1

Jag tänkte göra ett projekt i Eclipse och använda mig av Ant och lägga java-filerna i ett paket. Är relativt ny på området, har inte använt paket tidigare och inte Ant särskilt mycket heller. Men jag får det inte att funka.

MittProgram.java

package mittPaket;

public class MittProgram {
  public static void main(String[] args) {
    System.out.println("Hello World");
  }
}

build.xml

<?xml version="1.0"?>
<project name="MittProgram" default="run" basedir=".">

  <!-- Directories -->
  <property name="srcdir" location="src"/>
  <property name="destdir" location="bin"/>
  
  <target name="compile" description="Compiles the source code">
    <javac srcdir="${srcdir}"
           destdir="${destdir}">
    </javac>
  </target>
  
  <target name="run" depends="compile"
    description="Compiles the source code and run the application">
    <java taskname="MittProgram" classname="mittPaket.MittProgram"
      fork="true" failonerror="true"></java>
  </target>

</project>

Jag får då felet:

[MittProgram] java.lang.NoClassDefFoundError: mittPaket/MittProgram
[MittProgram] Caused by: java.lang.ClassNotFoundException: mittPaket.MittProgram
[MittProgram] 	at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
[MittProgram] 	at java.security.AccessController.doPrivileged(Native Method)
[MittProgram] 	at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
[MittProgram] 	at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
[MittProgram] 	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
[MittProgram] 	at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
[MittProgram] 	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
[MittProgram] Could not find the main class: mittPaket.MittProgram.  Program will exit.
[MittProgram] Exception in thread "main"

Det är förmodligen världens enklaste fel, men jag förstår inte vad det är.

ercizMedlem sedan maj 20011 880 inlägg
#2

Börjar misstänka att jag måste ha med nån classpath-tag i build.xml. Någon som vet hur?

spangoMedlem sedan juni 20006 147 inlägg
#3

Ja, java-tasken i run vet inte var dina klasser ligger nånstans, så du får sätta classpath på den också:

    <java taskname="MittProgram" classname="mittPaket.MittProgram"
      fork="true" failonerror="true" classpath="${destdir}" />
ercizMedlem sedan maj 20011 880 inlägg
#4

spango skrev:

Ja, java-tasken i run vet inte var dina klasser ligger nånstans, så du får sätta classpath på den också:

    <java taskname="MittProgram" classname="mittPaket.MittProgram"
      fork="true" failonerror="true" classpath="${destdir}" />

Tack, det löste problemet!

123 ms totalt · 3 externa anrop · cache AV · v20260731051352-full.56cc9887
0 ms — hämta statistik (cache)
0 ms — hämta forumlista (cache)
121 ms — hämta tråd, inlägg och bilagor (db)