Как игнорировать предупреждения с GCJ - PullRequest
2 голосов
/ 13 января 2010

У меня есть некоторые классы, которые реализуют интерфейсы, некоторые из которых имеют методы, параметры которых по определению не используются в конкретной реализации класса.Например, интерфейс «Shape» может определять метод «contains (point)», но мой конкретный класс определяет строку, которая не может содержать ничего, поскольку она одномерна, поэтому он всегда возвращает false и никогда не использует точку.

Однако, когда я компилирую с GCJ, меня атакуют сотни сообщений «warning: параметр x не используется».

Я пытался использовать флаг -Wno-all для отключения предупреждений, а также другихзадокументировано на man-странице gcj, но это не имеет никакого эффекта.Как мне поручить GCJ не беспокоить меня этими банальными предупреждениями?

Ответы [ 2 ]

2 голосов
/ 09 октября 2012

Мне удалось отключить все предупреждения, влияющие на мой исходный код, используя:

gcj -Wno-all -Wno-unchecked -Wno-raw *.java

Вы можете добавить больше -Wno-... флагов, чтобы отключить больше предупреждений. Чтобы выяснить возможные флаги, я изучил тело методов org.eclipse.jdt.internal.compiler.batch.Main.handleWarningToken и org.eclipse.jdt.internal.compiler.batch.Main.handleErrorOrWarningToken в Eclipse Batch Compiler. ecjsrc-3.5.2.zip и ecjsrc-3.8.zip.

Укажите все эти флаги, чтобы отключить все предупреждения:

-Wno-all
-Wno-allDeadCode
-Wno-allDeprecation
-Wno-allJavadoc
-Wno-allOver-ann
-Wno-all-static-method
-Wno-assertIdentifier
-Wno-boxing
-Wno-charConcat
-Wno-compareIdentical
-Wno-conditionAssign
-Wno-constructorName
-Wno-deadCode
-Wno-dep-ann
-Wno-deprecation
-Wno-discouraged
-Wno-emptyBlock
-Wno-enumIdentifier
-Wno-enumSwitch
-Wno-enumSwitchPedantic
-Wno-fallthrough
-Wno-fieldHiding
-Wno-finalBound
-Wno-finally
-Wno-forbidden
-Wno-hashCode
-Wno-hiding
-Wno-includeAssertNull
-Wno-incomplete-switch
-Wno-indirectStatic
-Wno-interfaceNonInherited
-Wno-intfAnnotation
-Wno-intfNonInherited
-Wno-intfRedundant
-Wno-javadoc
-Wno-localHiding
-Wno-maskedCatchBlock
-Wno-maskedCatchBlocks
-Wno-nls
-Wno-noEffectAssign
-Wno-noImplicitStringConversion
-Wno-null
-Wno-nullDereference
-Wno-over-ann
-Wno-over-sync
-Wno-packageDefaultMethod
-Wno-paramAssign
-Wno-pkgDefaultMethod
-Wno-raw
-Wno-redundantSuperinterface
-Wno-resource
-Wno-semicolon
-Wno-serial
-Wno-specialParamHiding
-Wno-static-access
-Wno-static-method
-Wno-staticReceiver
-Wno-super
-Wno-suppress
-Wno-switchDefault
-Wno-syncOverride
-Wno-synthetic-access
-Wno-syntheticAccess
-Wno-typeHiding
-Wno-unavoidableGenericProblems
-Wno-unchecked
-Wno-unnecessaryElse
-Wno-unqualifiedField
-Wno-unqualified-field-access
-Wno-unsafe
-Wno-unused
-Wno-unusedAllocation
-Wno-unusedArgument
-Wno-unusedArguments
-Wno-unusedImport
-Wno-unusedImports
-Wno-unusedLabel
-Wno-unusedLocal
-Wno-unusedLocals
-Wno-unusedPrivate
-Wno-unusedThrown
-Wno-unusedTypeArgs
-Wno-uselessTypeCheck
-Wno-varargsCast
-Wno-warningToken
1 голос
/ 13 января 2010

Хотя я не нашел возможности сделать это напрямую с помощью gcj, один из обходных путей состоит в том, чтобы перенаправить вывод в grep и найти шаблон «error:», а затем показать только эту строку и несколько окружающих строк.

например. javac * .java 2> & 1 | grep -B 3 -A 2 "ошибка:"

...