1

我试图打印到由数字和大写 M 组成的控制台字符串。就像:

System.out.println("blah");
System.out.println("123M");
System.out.println("blah blah");

结果是

blah
blah blah

所以println("123M")甚至没有被执行,因为另外两个人之间没有空行。数字数字和组合无关紧要,但如果'M'之前有任何字母或'M'之后有非空白字符,则会打印字符串。

在 java 1.7.0_03-b05 和另外两个(不知道版本)上试过。谢谢你的任何线索。

更新: 问题出现在 Maven 项目中。

下面是截图:

在此处输入图像描述

另一个更新:

Charlee Chitsuk关于 pom 的帖子之后,我将我的帖子改为:

<build>
  <plugins>
    <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <configuration>
        <archive>
          <manifest>
            <mainClass>javaapplication4.JavaApplication4</mainClass>
          </manifest>
        </archive>
        <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
      </configuration>
    </plugin>
  </plugins>
</build>

mvn clean compile assembly:single我终于收到正常工作的罐子之后。为什么它不能与 exec-maven-plugin 一起工作对我来说仍然是一个谜。

4

2 回答 2

2

我写了这门课,得到了一个线索。它仅在 Maven 项目中失败。

在这种情况下,几乎可以肯定您正在运行的代码不是您认为正在运行的代码。这是唯一合理的解释。

于 2013-03-27T16:08:18.883 回答
0

我注意到您正在使用org.codehaus.mojo:exec-maven-plugin:1.2:exec来执行您的JavaApplication4.java. 然后我猜你pom.xml可能看起来像

  <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <version>1.2.1</version>
    <executions>
      <execution>
        <goals>
          <goal>exec</goal>
        </goals>
      </execution>
    </executions>
    <configuration>
      <executable>java</executable>
      <arguments>
        <argument>-classpath</argument>
        <!-- automatically creates the classpath using all project dependencies,
             also adding the project build directory -->
        <classpath/>
        <argument>javaapplication4.JavaApplication4</argument>
        ...
      </arguments>
    </configuration>
  </plugin>

使用build and clean方式Eclipse Menumvn clean install. 通常我使用以下步骤在 Eclipse 中使用 Maven:-

  1. 右键单击项目选择Run As ----> Maven clean
  2. 右键单击项目选择Run As ----> Maven testRun As ----> Maven install

我想通知您检查org.codehaus.mojo:exec-maven-plugin配置并尝试使用步骤 1 清理项目。然后再次运行您的类。

我希望这可能会有所帮助。

于 2013-03-28T02:45:14.533 回答