2012-03-15 3 views
0

J'ai actuellement une application Maven dans Netbeans. Comme j'ai besoin d'utiliser des expressions régulières dans mon projet, j'ai ajouté la classe suivante à l'un de mes paquets: http://docs.oracle.com/javase/tutorial/essential/regex/test_harness.htmlNetbeans avec Maven - comportement de classe étrange

J'ai changé toutes les instructions d'entrée/sortie pour utiliser System.out et BufferedReader. Lorsque je cours cette classe à partir d'un nouveau projet, la classe fonctionne comme prévu. Mais quand je l'ajoute à mon projet Maven, je ne vois pas de sortie après:

NetBeans: Exécution '/ usr/share/maven2/bin/mvn -Dexec.classpathScope = runtime -Dexec.args = -classpath% classpath MySource.RegexTestHarness -Dexec.executable =/home/gowri/jdk1.6.0_20/bin/java -Dnetbeans.execution = true classes_processus org.codehaus.mojo: exec-maven-plugin: 1.1.1: exec ' NetBeans : JAVA_HOME =/home/Gowri/jdk1.6.0_20

Recherche de projets ...


bâtiment crawler4j tâche segments: [processus classes, org.codehaus .mojo: exec-maven-plugin: 1.1.1: exec]


[enforcer: appliquer]

[ressources: ressources]

utilisant l'encodage 'UTF-8' à copie filtrée Ressources.

Copie 2 ressources

[compilateur: compiler]

Compiler fichier 1 source/home/Gowri/workspace/yasserg-crawler4j-7b8bf91/target/classes

[exec: exec]

Quelqu'un pourrait-il me dire pourquoi cela se passe? Je me suis assuré que cette classe est la seule avec une fonction main(), et je clique sur "Exécuter le fichier" et non sur "Exécuter le projet".

Merci :)

EDIT: Je viens de réaliser quelque chose, quand je convertir toutes les déclarations System.out.print() à System.out.println(), alors seulement puis-je voir la sortie correcte. Des idées pourquoi?

Répondre

2

Le problème semble être le System.in ou System.out détaché de la fenêtre de sortie lors de l'utilisation de maven dans NetBeans comme indiqué dans ce issue. Essayez de mettre à jour le exec-maven-plugin à 1.2 dans le fichier nbactions.xml dans votre répertoire de projet actuel, ce bug a été résolu dans cette nouvelle version.

Pour le faire avec l'interface utilisateur, allez projet-> Propriétés-> Actions-> Dans l'action: Fichier Exécuter via principal(), Modifier les objectifs de Excecute à quelque chose comme ceci: « classes processus-org .codehaus.mojo: exec-maven-plugin: 1.2: exec »

Après cela, votre nbactions.xml devrait avoir une étiquette d'action qui ressemblerait à:

<action> 
     <actionName>run.single.main</actionName> 
     <goals> 
      <goal>process-classes</goal> 
      <goal>org.codehaus.mojo:exec-maven-plugin:1.2:exec</goal> 
     </goals> 
     <properties> 
      <exec.classpathScope>${classPathScope}</exec.classpathScope>     
      <exec.args>-Djava.library.path="${project.build.directory}/lib" -classpath %classpath ${packageClassName}</exec.args> 
      <exec.executable>java</exec.executable> 
     </properties> 
    </action> 
    <action> 
     <actionName>debug.single.main</actionName> 
     <goals> 
      <goal>process-classes</goal> 
      <goal>org.codehaus.mojo:exec-maven-plugin:1.2:exec</goal> 
     </goals> 
     <properties> 
      <exec.classpathScope>${classPathScope}</exec.classpathScope> 
      <exec.args>-Xdebug -Xrunjdwp:transport=dt_socket,server=n,address=${jpda.address} -classpath %classpath ${packageClassName}</exec.args> 
      <jpda.listen>true</jpda.listen> 
      <jpda.stopclass>${packageClassName}</jpda.stopclass> 
      <exec.executable>java</exec.executable> 
     </properties> 
    </action> 
+0

Hé, merci! :) – arya