Pourquoi n'est-il pas un runnable JAR exportés à partir de l'Éclipse de travail?
J'ai un projet qui fonctionne très bien depuis Eclipse.
Mais quand je l'exporter vers un runnable JAR avec dépendances emballé dans il il ne fonctionne pas.
L'erreur, lors de l'exécution de la JARRE de la console est:
MODIFIER (n'a pas à le faire fonctionner avec -jar avant):
INFO: Loading XML bean definitions from class path resource [applicationContext-
framework.xml]
Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoa
der.java:58)
Caused by: org.springframework.beans.factory.BeanDefinitionStoreException: IOExc
eption parsing XML document from class path resource [applicationContext-framewo
rk.xml]; nested exception is java.io.FileNotFoundException: class path resource
[applicationContext-framework.xml] cannot be opened because it does not exist
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBea
nDefinitions(XmlBeanDefinitionReader.java:349)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBea
nDefinitions(XmlBeanDefinitionReader.java:310)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReade
r.loadBeanDefinitions(AbstractBeanDefinitionReader.java:143)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReade
r.loadBeanDefinitions(AbstractBeanDefinitionReader.java:178)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReade
r.loadBeanDefinitions(AbstractBeanDefinitionReader.java:149)
at org.springframework.beans.factory.support.AbstractBeanDefinitionReade
r.loadBeanDefinitions(AbstractBeanDefinitionReader.java:212)
at org.springframework.context.support.AbstractXmlApplicationContext.loa
dBeanDefinitions(AbstractXmlApplicationContext.java:113)
at org.springframework.context.support.AbstractXmlApplicationContext.loa
dBeanDefinitions(AbstractXmlApplicationContext.java:80)
at org.springframework.context.support.AbstractRefreshableApplicationCon
text.refreshBeanFactory(AbstractRefreshableApplicationContext.java:123)
at org.springframework.context.support.AbstractApplicationContext.obtain
FreshBeanFactory(AbstractApplicationContext.java:422)
at org.springframework.context.support.AbstractApplicationContext.refres
h(AbstractApplicationContext.java:352)
at org.springframework.context.support.ClassPathXmlApplicationContext.<i
nit>(ClassPathXmlApplicationContext.java:139)
at org.springframework.context.support.ClassPathXmlApplicationContext.<i
nit>(ClassPathXmlApplicationContext.java:93)
at com.horstmann.violet.UMLEditorApplication.getApplicationContext(UMLEd
itorApplication.java:111)
at com.horstmann.violet.UMLEditorApplication.<init>(UMLEditorApplication
.java:94)
at com.horstmann.violet.UMLEditorApplication.main(UMLEditorApplication.j
ava:84)
... 5 more
Caused by: java.io.FileNotFoundException: class path resource [applicationContex
t-framework.xml] cannot be opened because it does not exist
at org.springframework.core.io.ClassPathResource.getInputStream(ClassPat
hResource.java:143)
at org.springframework.beans.factory.xml.XmlBeanDefinitionReader.loadBea
nDefinitions(XmlBeanDefinitionReader.java:336)
... 20 more
mais le fichier est en resources/
du POT-de la racine.
Ce qui me manque ou faire du tort?
S'il vous plaît dites-nous quelque chose de plus. Faire des captures d'écran de votre configuration d'exportation (assistants) et nous parler de votre projet de la structure. Avez-vous une exception pour nous?
Comme je l'ai dit, il ne jette pas des erreurs. JAR génération et un POT de l'exécution fonctionne très bien, avec la différence que le POT se ferme immédiatement, où la course à partir d'eclipse qui ne fonctionne pas. Im en utilisant la même config pour le POT comme pour l'exécution d'eclipse.
essayez d'exécuter jar à partir de l'invite de commande. Peut-être vous pouvez voir un peu certains d'erreur.
Apparemment, c'est d'essayer de convertir les Pots nom de fichier d'un chemin à l'intérieur du pot et ne parvient pas à charger la classe.
pourquoi vous avez besoin pour donner le POT de nom de fichier dans le code?
Comme je l'ai dit, il ne jette pas des erreurs. JAR génération et un POT de l'exécution fonctionne très bien, avec la différence que le POT se ferme immédiatement, où la course à partir d'eclipse qui ne fonctionne pas. Im en utilisant la même config pour le POT comme pour l'exécution d'eclipse.
essayez d'exécuter jar à partir de l'invite de commande. Peut-être vous pouvez voir un peu certains d'erreur.
Apparemment, c'est d'essayer de convertir les Pots nom de fichier d'un chemin à l'intérieur du pot et ne parvient pas à charger la classe.
pourquoi vous avez besoin pour donner le POT de nom de fichier dans le code?
OriginalL'auteur Cobra_Fast | 2011-06-16
Vous devez vous connecter pour publier un commentaire.
Essayez de cliquer sur l'option “Package de bibliothèques requises en JAR généré”.
Un fichier JAR est régulier, une archive compressée. Assurez-vous que toutes les bibliothèques requises dans votre MANIFESTE.MF fichiers sont présents dans le fichier généré.
OriginalL'auteur Alf
Essayez d'exécuter le POT à partir de la ligne de commande, il sera plus susceptible d'affichage de façon utile message d'erreur.
Il y a sans doute certaines dépendances que eclipse ne connaît pas ou qui ne sont pas configurés correctement à l'intérieur, et sont donc manquantes dans le BOCAL.
En général, ce n'est pas une bonne idée de s'appuyer sur les fonctionnalités de l'IDE pour produire des livrables - il dépend de trop de facteurs cachés et ne peut pas être automatisé pour un serveur de build. Tout projet qui est au-delà de l'expérimental/jouet stade doit disposer d'un système automatisé via Ant ou Maven.
OriginalL'auteur Michael Borgwardt
Le message
indique que vous avez obtenu le
Main-Class: MyPackage.MyClass
ligne mal dans le Manifeste lorsque les emballages ainsi que le fichier jar. Vous devez donner le nom complet de la classe avec la main(String[] args) méthode.Voir http://download.oracle.com/javase/tutorial/deployment/jar/appman.html pour plus de détails.
OriginalL'auteur Thorbjørn Ravn Andersen