2013-08-26 20 views
10

Recentemente ho aggiornato a Eclipse Kepler e sto avendo problemi con Ant. Sto ottenendo il Java Virtual Machine Launcher - Si è verificata un'eccezione Java, indipendentemente dal target che ho scelto nei miei file di build.Ant non funziona in Eclipse Kepler (Java Virtual Machine Launcher - Si è verificata un'eccezione Java)

Ho provato a reinstallare il mio JDK e ottengo ancora l'errore. Sto facendo funzionare la versione 7u25 del JDK. Ho la mia variabile d'ambiente JAVA_HOME impostata su C:\Progra~1\Java\jdk1.7.0_25, quindi non penso che questo sia il problema. Cos'altro potrebbe causare il problema?

EDIT: Ho anche testato ant sulla riga di comando e funziona bene. È un bug in Kepler?

EDIT 2: Ecco il log degli errori:

org.eclipse.core.runtime.CoreException: Could not find one or more classes: "org.apache.tools.ant.BuildLogger". Please check the Ant classpath. 
at org.eclipse.ant.core.AntRunner.problemLoadingClass(AntRunner.java:467) 
at org.eclipse.ant.core.AntRunner.run(AntRunner.java:380) 
at org.eclipse.ant.internal.launching.launchConfigurations.AntLaunchDelegate.runInSameVM(AntLaunchDelegate.java:307) 
at org.eclipse.ant.internal.launching.launchConfigurations.AntLaunchDelegate.launch(AntLaunchDelegate.java:260) 
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:858) 
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:707) 
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:700) 
at org.eclipse.core.externaltools.internal.model.ExternalToolBuilder.launchBuild(ExternalToolBuilder.java:181) 
at org.eclipse.core.externaltools.internal.model.ExternalToolBuilder.doBuildBasedOnScope(ExternalToolBuilder.java:169) 
at org.eclipse.core.externaltools.internal.model.ExternalToolBuilder.build(ExternalToolBuilder.java:88) 
at org.eclipse.core.internal.events.BuildManager$2.run(BuildManager.java:726) 
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) 
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:199) 
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:239) 
at org.eclipse.core.internal.events.BuildManager$1.run(BuildManager.java:292) 
at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42) 
at org.eclipse.core.internal.events.BuildManager.basicBuild(BuildManager.java:295) 
at org.eclipse.core.internal.events.BuildManager.basicBuildLoop(BuildManager.java:351) 
at org.eclipse.core.internal.events.BuildManager.build(BuildManager.java:374) 
at org.eclipse.core.internal.resources.Workspace.buildInternal(Workspace.java:514) 
at org.eclipse.core.internal.resources.Workspace.build(Workspace.java:423) 
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:830) 
at org.eclipse.debug.internal.core.LaunchConfiguration.launch(LaunchConfiguration.java:707) 
at org.eclipse.debug.internal.ui.DebugUIPlugin.buildAndLaunch(DebugUIPlugin.java:1018) 
at org.eclipse.debug.internal.ui.DebugUIPlugin$8.run(DebugUIPlugin.java:1222) 
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53) 

Caused by: java.lang.NoClassDefFoundError: org/apache/tools/ant/BuildLogger 
at java.lang.Class.getDeclaredConstructors0(Native Method) 
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) 
at java.lang.Class.getConstructor0(Unknown Source) 
at java.lang.Class.newInstance(Unknown Source) 
at org.eclipse.ant.core.AntRunner.run(AntRunner.java:324) 
... 24 more 

Caused by: java.lang.ClassNotFoundException: org.apache.tools.ant.BuildLogger 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.net.URLClassLoader$1.run(Unknown Source) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(Unknown Source) 
at org.eclipse.ant.internal.core.AntClassLoader.findClass(AntClassLoader.java:54) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
at java.lang.ClassLoader.loadClass(Unknown Source) 
... 29 more 
+1

e qual è il messaggio di errore? –

+0

Nessun messaggio di errore specifico, solo una casella che mostra "Si è verificata un'eccezione Java". –

+0

ci dovrebbe essere il pulsante dettagli in quella scatola, no? –

risposta

0

Possibile che Eclipse non ha il JAR corretta definita. Hai provato ad aggiungere gli strumenti.jar necessari per Ant?

Preferenze> Ant> Runtime

enter image description here

+0

Sì, è già lì. –

6

ho avuto lo stesso problema e mi ha tenuto un po 'per capire quale sia la soluzione. Ho seguito tutto il suggerimento su questa pagina e pagine simili; niente aiuto! Ho disinstallato e installato jdk, eclipse, resettato il mio progetto, ho forzato Eclipse a cancellare i suoi parametri, ...; nessun successo.

Infine, il problema è stato risolto eliminando la directory .metadata nella cartella dello spazio di lavoro. Non so cosa ci sia dentro Eclipse, ma cancellando la directory .metadata, Eclipse ha riavviato ogni impostazione. Dovevo reimportare la struttura del mio progetto. Funziona di nuovo come un fascino. Nessun messaggio di errore "Si è verificata un'eccezione".

2

Nel mio caso:

  • nessun log in Eclipse, solo un messaggio: Java Virtual Machine Launcher: un'eccezione Java è verificato.

A causa del riutilizzo di un vecchio spazio di lavoro con una diversa versione di Eclipse, ho risolto sostituendo tutte le dipendenze vaso in Ant-> Runtime-> Classpath-> Ant Pagina iniziale Contributi (Default) da reali e vaso esistente (dal mio eclipse-Jee-Kepler-SR1-win32-x86_64 \ eclipse \ plugins \ org.apache.ant_1.8.4.v201303080030 \ lib)

E 'contare su: https://bugs.eclipse.org/bugs/show_bug.cgi?id=102463#c41

+3

Puoi anche premere 'Ripristina impostazioni predefinite' da Ant> Runtime> scheda Classpath – Nick

+0

@Nick ha ragione. Grazie. – halil

1

ho avuto lo stesso errore; cambiato spazio di lavoro da Eclipse Indigo a Eclipse Kepler. Sono stato in grado di risolverlo ripristinando il valore Ant_Home. Originariamente puntava alla cartella corretta, ma l'ho reimpostata nella stessa cartella e ho fatto clic su "Applica". Funziona bene ora. Spero che questo aiuti.

0

Per me, basta eliminare la cartella dei metadati e avviare eclipse con l'importazione di tutto il progetto della libreria. Controlla il percorso della tua classe e aggiungi di nuovo il barattolo. Grazie

10

Ciò è molto probabilmente dovuto alla differenza nella versione di Ant utilizzata da Eclipse. Si prega di aggiornare Ant_Home in eclissi. Finestra -> Preferenze -> Ant -> Runtime -> Classpath -> Fare clic su Ant Home .. e provare a individuare la versione più recente del percorso della directory Ant. Questo funziona per me :)

+2

L'errore dell'OP è ciò che accade se sposti formica in una directory diversa senza aggiornare "Ant Home" in Eclipse. Questa risposta ha aiutato a risolvere il problema. – KyleM

0

Nel mio caso la casa di formica stava indicando un collegamento simbolico (a una vera installazione di formica). A Eclipse non piaceva. L'aggiornamento alla cartella di installazione effettiva ha risolto il problema.

1

Per me il problema era il JDK che stavo cercando di usare. Il progetto che volevo costruire era configurato per usare il JDK 1.6. Ho avuto lo stesso errore del questionario, ma quando sono passato a Java 8 la build ha funzionato bene. Quindi presumo che la versione ANT fornita con le versioni più recenti di Eclipse non funzioni con i JDK più vecchi.

enter image description here

2

IDE come (Eclipse-ossigeno) avrà di default le versioni formica. Se la tua formica XML non è compatibile con la versione superiore di ANT.

Abbassa/Aumenta la versione ANT a quella adatta. JDK non è compatibile con tutte le build ANT. Per Instance, ANT 1.9.2 è l'ultima versione per supportare JAVA 7.

Quindi dobbiamo abbinare rispettivamente la versione JDK e quella ANT. Sovrascrivi la versione predefinita di IDE usando Preferenze -> ANT -> Runtime -> Clicca su Ant Home (e scegli la nuova versione di ANT Home lì, che sovrascriverà Ant Home Entries)

0

Ho avuto questo problema di recente (quindi un collega) in Eclipse quando si esegue uno script ANT dall'interfaccia dell'interfaccia utente (menu di scelta rapida, Run As o Debug As).

A causa di alcuni motivi, il Runtime JRE per lo script ANT (o per ANT stessa, non chiaro a questo punto) è stato modificato. Questo JRE runtime può essere modificata dal menu di scelta rapida per lo script ANT, External Tools Configurations...:

Context Menu - Run As - External Tools Configuration

poi passare alla scheda JRE sul lato destro:

External Tools Configuration - Runtime JRE

mio collega aveva l'impostazione Separate JRE errata, l'ha modificata nell'impostazione JRE corretta (JDK 1.8_XXX nel suo caso). Questo è stato dopo una fusione, in cui apparentemente alcune impostazioni errate sono state unite in un ramo (o almeno così pensiamo).

Nel mio caso, penso di avere questo set come Run in the same JRE as the workspace che era sbagliato. Ho anche impostato su Separate JRE, ho scelto il corretto JDK 1.8 e ho risolto il problema. Questo è stato dopo un aggiornamento della versione di Eclipse (come ricordo).