2012-11-10 2 views
0

Привет У меня есть набор классов ява, который работал очень хорошо, когда я скомпилировать их с javac командой:не удалось скомпилировать Java код в groovyc

javac -g -nowarn -classpath /usr/class/cs143/cool/lib:.:/usr/java/lib/rt.jar ASTConstants.java ASTParser.java cool-tree.java 

Я установил заводной на той же машине и попытался выполнить следующие действия:

groovyc -classpath /usr/class/cs143/cool/lib:.:/usr/java/lib/rt.jar ASTConstants.java ASTParser.java cool-tree.java 

кажется, что заводной не в состоянии понять файл Java и его ошибка метательный как:

ASTParser.java: 21: unexpected token: protected @ line 21, column 3. 
    protected static final short _production_table[][] = 
^ 

Я немного смущен. Значит ли это, что все java-программы являются достоверными кодами? Только наоборот не прав?

Где я делаю ошибку?

Заранее спасибо.

ответ

4

Есть некоторые причуды. Используется для некоторых проблем с внутренними классами (может быть разрешено к настоящему моменту в 2.x), и вам, возможно, придется посмотреть, что находится в ваших строковых литералах (например, бродячие знаки доллара). Использование литерала для определения массива может быть проблемой (например, int [] ary = {}; не будет летать в groovy). Кроме того, часто не возникает, но масштабные фигурные скобки, используемые самими собой, путают.

В вашем конкретном случае просто измените short _production_table [][] на short [][] _production_table. Я считаю, что это должно устранить вашу проблему.

BTW, некоторые другие "gotchas" here.

+0

+1: Проблема все еще существует в 2.x, но ключевое слово moving type будет исправлять проблему. – Reimeus

+0

Спасибо, что ты был прав. И есть ли какая-нибудь страница, где упоминается основная разница между Groovy и java? – sriram

+0

, если вы проверите ссылку в ответе, есть довольно краткий список различий (хотя и не исчерпывающий) внизу. –

Смежные вопросы