eclipse中ant build 控制台乱码解决解决方法(ant执行java)

简介:

有如下ant的target,为了执行java代码

	<target name="shanhy" depends="compile">
		<!-- 指明要调用的java类的名称 -->
		<java classname="Test" fork="true" failonerror="true">
			<!-- 指明要调用的java类的class路径 -->
			<classpath path="F:\androidWorkspace\apkPacker\bin">
			</classpath>
		</java>
	</target>

上面代码中,classname应该写java类包括包名的名称“ com.shanhy.demo.packers.Test ”,我故意写错只写“ Test ”

在eclipse中使用ant 执行该target  的时候,会出现如下乱码。

Buildfile: F:\androidWorkspace\Packers\build.xml
Trying to override old definition of task dex-helper
compile:
    [javac] F:\androidWorkspace\Packers\custom_rules.xml:59: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
shanhy:
     [java] ����: �Ҳ������޷��������� Test

BUILD FAILED
F:\androidWorkspace\Packers\custom_rules.xml:64: Java returned: 1

Total time: 1 second

在实际项目开发中,我们可能会用到很多中文的地方,可能会经常出现这样乱码的情况,导致我们无法正确的判断具体的错误原因。

解决方法就是 在运行时修改ant 的运行时输出编码,我们添加(<sysproperty key="file.encoding" value="UTF-8" />) 后,控制台就可以正常显示中文了,如下:


	<target name="shanhy" depends="compile">
		<!-- 指明要调用的java类的名称 -->
		<java classname="Test" fork="true" failonerror="true">
                        <sysproperty key="file.encoding" value="UTF-8" />
			<!-- 指明要调用的java类的class路径 -->
			<classpath path="F:\androidWorkspace\apkPacker\bin">
			</classpath>
		</java>
	</target>

输出如下:

Buildfile: F:\androidWorkspace\Packers\build.xml
Trying to override old definition of task dex-helper
compile:
    [javac] F:\androidWorkspace\Packers\custom_rules.xml:59: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
shanhy:
     [java] 错误: 找不到或无法加载主类 Test

BUILD FAILED
F:\androidWorkspace\Packers\custom_rules.xml:64: Java returned: 1

Total time: 1 second

我们现在将 classname 修改正确,如下:

Buildfile: F:\androidWorkspace\Packers\build.xml
Trying to override old definition of task dex-helper
compile:
    [javac] F:\androidWorkspace\Packers\custom_rules.xml:59: warning: 'includeantruntime' was not set, defaulting to build.sysclasspath=last; set to false for repeatable builds
shanhy:
     [java] 单红宇
BUILD SUCCESSFUL
Total time: 1 second

测试的Java 类代码为:

package com.shanhy.demo.packers;

public class Test {

	/**
	 * 测试
	 * 
	 * @param args
	 * @author SHANHY
	 * @date   2015-8-18
	 */
	public static void main(String[] args) {
		System.out.println(args[0]);
	}

}











<target name="shanhy" depends="compile"><!-- 指明要调用的java类的名称 --><java classname="Test" fork="true" failonerror="true"><!-- 指明要调用的java类的class路径 --><classpath path="F:\androidWorkspace\apkPacker\bin"></classpath></java></target>

目录
相关文章
|
2月前
|
IDE Java 编译器
Java The method compareTo(Integer) in the type解决方法
Java编程过程中,Integer对象(或其它继承自Number类的包装类对象)使用Number包装类内置的compareTo()方法来比较调用对象和参数之间的大小的时候,Java的集成开发环境IDE或编译器给出了提示:The method compareTo(Integer) in the type Integer is not applicable for the arguments (Float)
30 5
|
3月前
|
Java 容器
idea中关于java的图形化界面编程awt_container容器中Button(按钮)上汉字是乱码或者小方框的解决方法
idea中关于java的图形化界面编程awt_container容器中Button(按钮)上汉字是乱码或者小方框的解决方法
35 0
|
23小时前
|
Java
Java并发编程中的死锁问题及解决方法
【2月更文挑战第9天】在Java并发编程中,死锁是一种常见但又令人头疼的问题。本文将深入探讨死锁产生的原因,以及针对不同情况所提供的解决方法,帮助读者更好地理解和应对死锁。
|
3天前
|
缓存 安全 Java
Java并发编程中的线程安全性问题与解决方法
【2月更文挑战第6天】在Java并发编程中,线程安全性一直是一个重要的问题。本文将深入探讨Java中线程安全性问题的根源,以及针对这些问题提出的解决方法,包括使用同步关键字、Lock对象、volatile关键字等。通过本文的学习,读者将更好地理解Java并发编程中的线程安全性问题,并能够运用相应的解决方法来保障程序的稳定性和可靠性。
13 4
|
24天前
|
存储 Java
基于控制台的购书系统(Java 语言实现)
基于控制台的购书系统(Java 语言实现)
|
2月前
|
XML Java Android开发
Java学习—Eclipse/Idea如何设置自动提示
Java学习—Eclipse/Idea如何设置自动提示
|
2月前
|
Java Android开发
用eclipse中打开Java项目
用eclipse中打开Java项目
20 1
|
2月前
|
Java Android开发
如何用eclipse中打开已存在的Java项目
如何用eclipse中打开已存在的Java项目
14 0
|
2月前
|
Java 应用服务中间件 Android开发
Tomat + Java配置 + eclipse下载
Tomat + Java配置 + eclipse下载
|
2月前
|
Java 关系型数据库 BI
基于Java Swing 开发的网吧管理系统【eclipse和idea两个版本运行源码】
基于Java Swing 开发的网吧管理系统【eclipse和idea两个版本运行源码】

相关产品

  • 云迁移中心
  • 推荐镜像

    更多