如何在ant上显示system.out(在控制台中)?

clj7thdc  于 2021-07-09  发布在  Java
关注(0)|答案(2)|浏览(481)

我能够在ant上构建java程序,并且已经正确配置。但是,我想知道如何在使用ant的控制台上看到system.out.println/system.out.print?
注意:我没有使用ant,我正在尝试探索。我希望我的问题不是愚蠢的?
简单程序

  1. package antTesting;
  2. public class Helloworld
  3. {
  4. /**
  5. * @param args
  6. */
  7. public static void main( String[] args )
  8. {
  9. System.out.println( " hello there !!!! " );
  10. }
  11. }

相同的build.xml

  1. <?xml version="1.0"?>
  2. <project name="Ant-Test" default="main" basedir=".">
  3. <!-- Sets variables which can later be used. -->
  4. <!-- The value of a property is accessed via ${} -->
  5. <property name="src.dir" location="src" />
  6. <property name="build.dir" location="build" />
  7. <property name="dist.dir" location="dist" />
  8. <property name="docs.dir" location="docs" />
  9. <!-- Deletes the existing build, docs and dist directory-->
  10. <target name="clean">
  11. <delete dir="${build.dir}" />
  12. <delete dir="${docs.dir}" />
  13. <delete dir="${dist.dir}" />
  14. </target>
  15. <!-- Creates the build, docs and dist directory-->
  16. <target name="makedir">
  17. <mkdir dir="${build.dir}" />
  18. <mkdir dir="${docs.dir}" />
  19. <mkdir dir="${dist.dir}" />
  20. </target>
  21. <!-- Compiles the java code (including the usage of library for JUnit -->
  22. <target name="compile" depends="clean, makedir">
  23. <javac srcdir="${src.dir}" destdir="${build.dir}">
  24. </javac>
  25. </target>
  26. <!-- Creates Javadoc -->
  27. <target name="docs" depends="compile">
  28. <javadoc packagenames="src" sourcepath="${src.dir}" destdir="${docs.dir}">
  29. <!-- Define which files / directory should get included, we include all -->
  30. <fileset dir="${src.dir}">
  31. <include name="**" />
  32. </fileset>
  33. </javadoc>
  34. </target>
  35. <!--Creates the deployable jar file -->
  36. <target name="jar" depends="compile">
  37. <jar destfile="${dist.dir}\de.vogella.build.test.ant.jar" basedir="${build.dir}">
  38. <manifest>
  39. <attribute name="Main-Class" value="test.Main" />
  40. </manifest>
  41. </jar>
  42. </target>
  43. <target name="main" depends="compile, jar, docs">
  44. <description>Main target</description>
  45. </target>
  46. </project>

当我 run > ant 按命令

  1. Picked up JAVA_TOOL_OPTIONS: -agentlib:jvmhook
  2. Picked up _JAVA_OPTIONS: -Xrunjvmhook -Xbootclasspath/a:C:\PROGRA~2\HP\Sprinter\
  3. bin\JAVA_S~1\classes;C:\PROGRA~2\HP\Sprinter\bin\JAVA_S~1\classes\jasmine.jar
  4. Buildfile: C:\Users\ms025226\workspace\TestingWorld\build.xml
  5. clean:
  6. [delete] Deleting directory C:\Users\ms025226\workspace\TestingWorld\build
  7. [delete] Deleting directory C:\Users\ms025226\workspace\TestingWorld\docs
  8. [delete] Deleting directory C:\Users\ms025226\workspace\TestingWorld\dist
  9. makedir:
  10. [mkdir] Created dir: C:\Users\ms025226\workspace\TestingWorld\build
  11. [mkdir] Created dir: C:\Users\ms025226\workspace\TestingWorld\docs
  12. [mkdir] Created dir: C:\Users\ms025226\workspace\TestingWorld\dist
  13. compile:
  14. [javac] C:\Users\ms025226\workspace\TestingWorld\build.xml:26: warning: 'inc
  15. ludeantruntime' was not set, defaulting to build.sysclasspath=last; set to false
  16. for repeatable builds
  17. [javac] Compiling 1 source file to C:\Users\ms025226\workspace\TestingWorld\
  18. build
  19. jar:
  20. [jar] Building jar: C:\Users\ms025226\workspace\TestingWorld\dist\de.vogel
  21. la.build.test.ant.jar
  22. docs:
  23. [javadoc] Generating Javadoc
  24. [javadoc] Javadoc execution
  25. [javadoc] Loading source file C:\Users\ms025226\workspace\TestingWorld\src\Hel
  26. loworld.java...
  27. [javadoc] Constructing Javadoc information...
  28. [javadoc] Standard Doclet version 1.6.0_31
  29. [javadoc] Building tree for all the packages and classes...
  30. [javadoc] Building index for all the packages and classes...
  31. [javadoc] Picked up JAVA_TOOL_OPTIONS: -agentlib:jvmhook
  32. [javadoc] Picked up _JAVA_OPTIONS: -Xrunjvmhook -Xbootclasspath/a:C:\PROGRA~2\
  33. HP\Sprinter\bin\JAVA_S~1\classes;C:\PROGRA~2\HP\Sprinter\bin\JAVA_S~1\classes\ja
  34. smine.jar
  35. [javadoc] Building index for all classes...
  36. main:
  37. BUILD SUCCESSFUL
  38. Total time: 2 seconds

当我为类路径定义目标时,我收到了一个错误

  1. <!-- to printoutputs -->
  2. <target name="Helloworld" description="Hello world">
  3. <java classname="antTesting.Helloworld">
  4. <arg value="arg1"/>
  5. <arg value="arg2"/>
  6. </java>
  7. </target>
  8. <target name="main" depends="compile, jar, docs, Helloworld">
  9. <description>Main target</description>
  10. </target>

错误:

  1. Helloworld:
  2. [java] Could not find antTesting.Helloworld. Make sure you have it in your classpath
  3. [java] at org.apache.tools.ant.taskdefs.ExecuteJava.execute(ExecuteJava.java:138)
  4. [java] at org.apache.tools.ant.taskdefs.Java.run(Java.java:764)
  5. [java] at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:218)
  6. [java] at org.apache.tools.ant.taskdefs.Java.executeJava(Java.java:132)
  7. [java] at org.apache.tools.ant.taskdefs.Java.execute(Java.java:105)
  8. [java] at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:288)
  9. [java] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
  10. [java] at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
  11. [java] at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
  12. [java] at java.lang.reflect.Method.invoke(Method.java:597)
  13. [java] at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
  14. [java] at org.apache.tools.ant.Task.perform(Task.java:348)
  15. [java] at org.apache.tools.ant.Target.execute(Target.java:357)
  16. [java] at org.apache.tools.ant.Target.performTasks(Target.java:385)
  17. [java] at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1337)
  18. [java] at org.apache.tools.ant.Project.executeTarget(Project.java:1306)
  19. [java] at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
  20. [java] at org.eclipse.ant.internal.launching.remote.EclipseDefaultExecutor.executeTargets(EclipseDefaultExecutor.java:32)
  21. [java] at org.apache.tools.ant.Project.executeTargets(Project.java:1189)
  22. [java] at org.eclipse.ant.internal.launching.remote.InternalAntRunner.run(InternalAntRunner.java:423)
  23. [java] at org.eclipse.ant.internal.launching.remote.InternalAntRunner.main(InternalAntRunner.java:137)
  24. [java] Java Result: -1
btqmn9zl

btqmn9zl1#

您需要system.out还是使用日志(apachecommons,slf4j…)更有趣?

lrl1mhuk

lrl1mhuk2#

如果您想从ant执行类,您没有在任何地方指定它,请在脚本中添加如下内容:

  1. <target name="Helloworld" description="Hello world">
  2. <java classname="your.package.Helloworld">
  3. <arg value="arg1"/>
  4. <arg value="arg2"/>
  5. ...
  6. </java>
  7. </target>

元素 <arg value="..."/> 传递给主方法数组参数: main( String[] args ) 现在添加目标 Helloworld 作为对其他目标的依赖关系,或从运行选项中选择它。

相关问题