Итак, я столкнулся с досадной небольшой проблемой между api для javax.tools.JavaCompiler и компилятором cmd (что то же самое!). Я просто хочу использовать аргумент javac как: * -d C: \ compiled \ C: \ programs \ HelloWorld.java *. Это отлично работает в командной строке cmd, но мой код не работает, говоря, что файл не существует.javax.tools.JavaCompiler "arguments" arg
public class Test {
private static String programsDir = "C:\\programs\\";
private static String compiledDir = "C:\\compiled\\";
private static String fileName = "HelloWorld.java";
public static void main(String[] args){
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
String arguments = "-d " + compiledDir + " " + programsDir + fileName ;
compiler.run(System.in, System.out, System.err, arguments);
}
Выход:
javac: file not found: -d C:\compiled\ C:\programs\HelloWorld.java
Usage: javac <options> <source files>
use -help for a list of possible options
Но я могу вырезать и вставить "-d C: \ скомпилирован \ C: \ Programs \ Helloworld.java" в JAVAC. То есть javac -d C: \ compiled \ C: programs \ HelloWorld.java работает.
'C: programs' ->' '\' 'отсутствует по какой-то причине (ваш код показывает, что она есть)? – nhahtdh
@nhahtdh Хотя он в коде - не уверен, что используется ;-) – assylias
Извините, ребята, это была опечатка. Починил это. – Matt