Какие стандартные экстерны предоставляет командная строка Google Closure и как их получить через интерфейс Java?

В настоящее время я использую этот код:

com.google.javascript.jscomp.Compiler.setLoggingLevel(Level.OFF);
com.google.javascript.jscomp.Compiler compiler = new com.google.javascript.jscomp.Compiler();
CompilerOptions options = new CompilerOptions();
CompilationLevel.ADVANCED_OPTIMIZATIONS.setOptionsForCompilationLevel(options);
WarningLevel.VERBOSE.setOptionsForWarningLevel(options);

List<JSSourceFile> externs = new ArrayList<JSSourceFile>();
externs.add(JSSourceFile.fromFile(extern_src));

List<JSSourceFile> primary = new ArrayList<JSSourceFile>();
primary.add(JSSourceFile.fromFile(tmp));
compiler.compile(externs, primary, options);

Тем не менее, я получаю много ошибок, как это:

Error message: JSC_UNDEFINED_VARIABLE. variable Array is undefined
Error message: JSC_UNDEFINED_VARIABLE. variable TypeError is undefined
Error message: JSC_UNDEFINED_VARIABLE. variable Object is undefined 
Error message: JSC_UNDEFINED_VARIABLE. variable arguments is undefined
Error message: JSC_UNDEFINED_VARIABLE. variable Number is undefined
Error message: JSC_UNDEFINED_VARIABLE. variable Math is undefined

Очевидно, это неверно: такие вещи, как Object и arguments и т. д., являются основной частью языка. Что я могу сделать, чтобы исправить это?


person Aaron Yodaiken    schedule 09.07.2011    source источник


Ответы (1)


Вы видели блог Майкла Болина об использовании Java API?

http://blog.bolinfest.com/2009/11/calling-closure-compiler-from-java.html

person John    schedule 11.07.2011
comment
Я не вижу ничего другого, кроме использования строк вместо файлов, которые он делает, — я не думаю, что это должно вызвать проблему. Не могли бы вы уточнить, если это не так › - person Aaron Yodaiken; 11.07.2011
comment
Вам нужны стандартные экстерны. См. getDefaultExterns() в code.google.com/p/closure-compiler/source/browse/trunk/src/com/ - person John; 14.07.2011