2013-01-08 55 views
1

我想在我的電腦上在Windows 7下編譯一些java文件在法國;和我的事,我有一些麻煩文件endoding ...javac @<opiton_file>和編碼

在第一步中,我生成文件列表進行編譯:

dir src\*.java /B/S > javasrc.tmp~ 

將在文件「javasrc寫道。 tmp〜「逐行排列目錄src的java文件(recursivly)的完整路徑。就我而言,我有:

C:\Users\Alexandre\Développement\Java\src\testA.java 
C:\Users\Alexandre\Développement\Java\src\testB.java 
[...] 

(請注意,有一個accentued信塞進我的完整路徑)

在第二步中,我編譯所有的源文件使用以下命令:

"%JAVA_HOME%\bin\javac.exe" @javasrc.tmp~ 

而且我得到這個錯誤:

javac: file not found: C:\Users\Alexandre\Développement\Java\src\testA.java 

當打開我的javasrc.tmp〜文件在記事本++日e文件顯示爲:

C:\Users\Alexandre\D,veloppement\Java\src\testA.java 
C:\Users\Alexandre\D,veloppement\Java\src\testB.java 
[...] 

重音字母顯示爲逗號;我必須選擇OEM 863文件編碼才能正確顯示文件的內容。

那麼如何解決我的問題? (我使用這些命令作爲bat文件中的自動過程)。

謝謝。

+1

的Java傾向於使用默認的ANSI代碼在Windows上。控制檯使用OEM代碼頁。嘗試使用'CHCP'將終端切換到ANSI(例如,西式拉丁文爲1252)。 – McDowell

+0

是的!你是我的英雄;)這是在開玩笑!感謝 – Alexxx

回答

0

最好的辦法是更改爲ant或maven而不是bat文件。它更標準,更便攜。

一個基本的Ant文件將被命名爲build.xml文件,並期待這樣的:

<project name="My Project Name Here" basedir="." default="main"> 

<property name="lib.dir" value="lib"/> 

<path id="classpath"> 
<fileset dir="${lib.dir}" includes="**/*.jar"/> 
</path> 

<property name="src.dir" value="src"/> 

<property name="build.dir" value="build"/> 
<property name="classes.dir" value="${build.dir}/classes"/> 
<property name="jar.dir" value="${build.dir}/jar"/> 

<property name="main-class" value="My Main Class Name Here"/> 

<target name="clean"> 
<delete dir="${build.dir}"/> 
</target> 

<target name="compile"> 
<mkdir dir="${classes.dir}"/> 
<javac srcdir="${src.dir}" destdir="${classes.dir}" classpathref="classpath"/> 
</target> 

<target name="jar" depends="compile"> 
<mkdir dir="${jar.dir}"/> 
<jar destfile="${jar.dir}/${ant.project.name}.jar" basedir="${classes.dir}"> 
<manifest> 
<attribute name="Main-Class" value="${main-class}"/> 
</manifest> 
</jar> 
</target> 

<target name="run" depends="jar"> 
<java fork="true" classname="${main-class}"> 
<classpath> 
<path refid="classpath"/> 
<path location="${jar.dir}/${ant.project.name}.jar"/> 
</classpath> 
<arg value="RIMM" /> 
</java> 
</target> 

<target name="clean-build" depends="clean,jar"/> 

<target name="main" depends="clean,run"/> 

</project> 
+0

好吧,你是對的,我可能必須使用Ant來編譯我的java項目,而不是使我可怕的蝙蝠工具。但我不想安裝所有可用的軟件來做一件小事。我在Windows下已經有JDK和本機bat文件處理。這一定夠了!但是,謝謝你的回覆。 – Alexxx