汗,刚刚突然发现我的javac是eclipse的java编译器。留念下。
stlxv@stlxvcomputer:~$ javac -version
Eclipse Java Compiler v_686_R32x, 3.2.2 release, Copyright IBM Corp 2000, 2006.
这东西原名叫ecj,不过我也不知道是哪里冒出来的。算了,这个东西编译速度挺快的,我觉得。
stlxv@stlxvcomputer:~$ update-alternatives --display javac
javac - status is auto.
link currently points to /usr/bin/ecj
/usr/lib/jvm/java-6-sun/bin/javac - priority 63
slave javac.1.gz: /usr/lib/jvm/java-6-sun/man/man1/javac.1.gz
/usr/bin/ecj - priority 143
slave javac.1.gz: /usr/share/man/man1/ecj.1.gz
Current `best' version is /usr/bin/ecj.
可编译1.3~1.6的代码。
stlxv@stlxvcomputer:~$ javac
Eclipse Java Compiler v_686_R32x, 3.2.2 release
Copyright IBM Corp 2000, 2006. All rights reserved.
Usage: <options> <source files | directories>
If directories are specified, then their source contents are compiled.
Possible options are listed below. Options enabled by default are prefixed
with '+'.
Classpath options:
-cp -classpath <directories and zip/jar files separated by :>
specify location for application classes and sources.
Each directory or file can specify access rules for
types between '[' and ']' (e.g. [-X] to forbid
access to type X, [~X] to discourage access to type X,
[+p/X:-p/*] to forbid access to all types in package p
but allow access to p/X)
-bootclasspath <directories and zip/jar files separated by :>
specify location for system classes. Each directory or
file can specify access rules for types between '['
and ']'
-sourcepath <directories and zip/jar files separated by :>
specify location for application sources. Each directory
or file can specify access rules for types between '['
and ']'.
.class files created from source files contained in a
jar file are put in the user.dir folder in case no
destination directory is specified.
-extdirs <directories separated by :>
specify location for extension zip/jar files
-endorseddirs <directories separated by :>
specify location for endorsed zip/jar files
-d <dir> destination directory (if omitted, no directory is
created)
-d none generate no .class files
-encoding <enc> specify custom encoding for all sources. Each
file/directory can override it when suffixed with
'['<enc>']' (e.g. X.java[utf8])
Compliance options:
-1.3 use 1.3 compliance level (implicit -source 1.3
-target 1.1)
-1.4 + use 1.4 compliance level (implicit -source 1.3
-target 1.2)
-1.5 use 1.5 compliance level (implicit -source 1.5
-target 1.5)
-1.6 use 1.6 compliance level (implicit -source 1.6
-target 1.6)
-source <version> set source level: 1.3 to 1.6 (or 5, 5.0, 6 or 6.0)
-target <version> set classfile target level: 1.1 to 1.6 (or 5, 5.0, 6 or
6.0)
Warning options:
-deprecation + deprecation outside deprecated code
-nowarn disable all warnings
-warn:none disable all warnings
-warn:<warnings separated by ,> enable exactly the listed warnings
-warn:+<warnings separated by ,> enable additional warnings
-warn:-<warnings separated by ,> disable specific warnings
allDeprecation deprecation including inside deprecated code
allJavadoc invalid or missing javadoc
assertIdentifier + 'assert' used as identifier
boxing autoboxing conversion
charConcat + char[] in String concat
conditionAssign possible accidental boolean assignment
constructorName + method with constructor name
dep-ann missing @Deprecated annotation
deprecation + deprecation outside deprecated code
discouraged + use of types matching a discouraged access rule
emptyBlock undocumented empty block
enumSwitch incomplete enum switch
fallthrough possible fall-through case
fieldHiding field hiding another variable
finalBound type parameter with final bound
finally + finally block not completing normally
forbidden + use of types matching a forbidden access rule
hiding macro for fieldHiding, localHiding, typeHiding and
maskedCatchBlock
incomplete-switch same as enumSwitch
indirectStatic indirect reference to static member
intfAnnotation + annotation type used as super interface
intfNonInherited + interface non-inherited method compatibility
javadoc invalid javadoc
localHiding local variable hiding another variable
maskedCatchBlock + hidden catch block
nls string literal lacking non-nls tag //$NON-NLS-<n>$
noEffectAssign + assignment without effect
null missing or redundant null check
over-ann missing @Override annotation
paramAssign assignment to a parameter
pkgDefaultMethod + attempt to override package-default method
raw usage of raw type
semicolon unnecessary semicolon, empty statement
serial + missing serialVersionUID
specialParamHiding constructor or setter parameter hiding another field
static-access macro for indirectStatic and staticReceiver
staticReceiver + non-static reference to static member
suppress + enable @SuppressWarnings
synthetic-access same as syntheticAccess
syntheticAccess synthetic access for innerclass
tasks(<tags separated by |>) tasks identified by tags inside comments
typeHiding + type parameter hiding another type
unchecked + unchecked type operation
unnecessaryElse unnecessary else clause
unqualified-field-access same as unqualifiedField
unqualifiedField unqualified reference to field
unused macro for unusedArgument, unusedImport, unusedLabel,
unusedLocal, unusedPrivate and unusedThrown
unusedArgument unread method parameter
unusedImport + unused import declaration
unusedLabel + unused label
unusedLocal + unread local variable
unusedPrivate + unused private member declaration
unusedThrown unused declared thrown exception
uselessTypeCheck unnecessary cast/instanceof operation
varargsCast + varargs argument need explicit cast
warningToken + unhandled warning token in @SuppressWarnings
Debug options:
-g[:lines,vars,source] custom debug info
-g:lines,source + both lines table and source debug info
-g all debug info
-g:none no debug info
-preserveAllLocals preserve unused local vars for debug purpose
Ignored options:
-J<option> pass option to virtual machine (ignored)
-X<option> specify non-standard option (ignored)
-X print non-standard options and exit (ignored)
-O optimize for execution time (ignored)
Advanced options:
@<file> read command line arguments from file
-maxProblems <n> max number of problems per compilation unit (100 by
default)
-log <file> log to a file. If the file extension is '.xml', then
the log will be a xml file.
-proceedOnError do not stop at first error, dumping class files with
problem methods
-verbose enable verbose output
-referenceInfo compute reference info
-progress show progress (only in -log mode)
-time display speed information
-noExit do not call System.exit(n) at end of compilation (n==0
if no error)
-repeat <n> repeat compilation process <n> times for perf analysis
-inlineJSR inline JSR bytecode (implicit if target >= 1.5)
-enableJavadoc consider references in javadoc
-Xemacs used to enable emacs-style output
-? -help print this help message
-v -version print compiler version
-showversion print compiler version and continue
分享到:
相关推荐
在本手册中,我们将探讨如何将Java反编译器集成到Eclipse中,以便在Eclipse内直接查看jar包内的class代码。 首先,我们需要了解什么是Java反编译器。反编译器是一种软件,它的作用是将已编译的字节码转换回源代码的...
Java编译器是Java编程语言的核心工具之一,它将程序员编写的人类可读的源代码(.java文件)转换为计算机可执行的字节码(.class文件)。这个过程被称为编译,它是Java程序生命周期中的关键步骤。Java的编译器被称为...
【描述】:本文将详细介绍如何在Eclipse集成开发环境中配置并使用反编译器,帮助开发者理解并查看已编译的Java类文件的源代码。我们将通过图文并茂的方式,一步步指导你完成整个过程。 【知识点】: 1. **反编译器...
Java编译器的使用非常简单,通常在命令行环境下,通过指定源代码文件路径并执行`javac`命令即可完成编译。例如,如果有一个名为`HelloWorld.java`的源文件,我们只需要输入`javac HelloWorld.java`,编译器就会生成...
2. **编译**:在编译`A.java`时,由于它引用了`B.java`,Java编译器(javac)会自动尝试查找并编译`B.java`,只要能找到正确的源文件路径。在这种情况下,可以在`F:\test`目录下执行`javac A.java`,但前提是`...
"java编译器,解释器构造实践"这一主题深入探讨了这两个关键组件的构建过程及其在软件开发中的作用。以下是相关知识点的详细说明: 1. **Java编译器**(Javac):Java程序首先通过Javac编译器将源代码(.java文件)...
`javac.exe`是Java编译器,用于将Java源代码编译成字节码(`.class`文件)。使用示例如下: ``` javac com/example/MainClass.java ``` 这会生成一个名为`com/example/MainClass.class`的文件。需要注意的是,如果你...
传统的开发流程通常依赖于命令行工具,如JCDK提供的jcsc(Java Card Security Compiler)和jcpkcs11(Java Card PKCS#11 Provider)。然而,jcde插件的出现极大地简化了这一过程,使得开发人员能够在Eclipse的图形...
Java源代码(.java文件)通过Java编译器(如javac)被转化为字节码(.class文件),这个字节码是平台无关的,可以在任何支持Java的平台上运行。然而,字节码是中间语言,不具备人类可读性,这就需要反编译器来帮忙。...
Java程序首先被Java编译器转化为字节码,这是一种平台无关的中间表示形式,存储在.class文件中。字节码由虚拟机(JVM)执行,提供了跨平台的运行能力。尽管字节码是低级的机器语言,但它并不直接对应于人类可读的源...
2. **JAD**:JAD是较早的Java反编译器,它提供命令行接口,支持批量反编译,也可以通过插件集成到IDE中。 3. **FernFlower**:FernFlower是一款开源的Java反编译器,它提供了良好的源代码恢复能力,并且可以作为...
它包括Java虚拟机(JVM)、Java类库以及编译器等组件,用于编写、测试和运行Java程序。与32位JDK相比,64位JDK能处理更大的数据量,尤其在处理大数据和高性能应用时表现出色。 将64位Eclipse与64位JDK配合使用是至...
虽然jikes可以作为一个独立的命令行工具使用,但它也可以集成到各种Java集成开发环境(IDEs)中,如Eclipse、NetBeans等。通过IDE,开发者可以享受到代码编辑、调试、重构等一系列便利,同时利用jikes的快速编译优势...
ubuntu 下eclipse CDT搭建交叉编译开发环境 本文将详细介绍如何在ubuntu平台下使用eclipse CDT搭建交叉编译开发环境,包括准备相关软件安装包、安装软件包、应用程序编译、导入现存的makefile project、Qt 插件安装...
Java反编译器是开发人员在处理Java字节码时常用的一种工具,它能够将已编译的Java类文件(.class)转换回源代码格式(.java)。这在需要查看或理解非开源软件的工作原理、调试二进制库或者逆向工程时非常有用。在Java...
FernFlower可以通过命令行或者与其他IDE(如Eclipse或IntelliJ IDEA)集成使用。 4. **Procyon**:这款反编译器不仅能够反编译,还具有语法分析和代码重构的能力。它的输出源代码格式较为整洁,易于阅读。 5. ** ...
JDK包含了编译器、Java运行时环境以及各种开发工具。在Ubuntu 16.04上安装JDK,可以使用命令行执行以下步骤: 1. 更新系统软件包列表: ``` sudo apt-get update ``` 2. 安装JDK: ``` sudo apt-get install ...
- **集成到IDE:** 许多开发环境,如IntelliJ IDEA和Eclipse,允许通过插件集成反编译器。 - **自动化:** 通过脚本或构建工具(如Gradle或Maven)自动化反编译过程。 总的来说,Java反编译器是Java开发者的重要...
除了反编译器,还有一些工具与之相关,如Class Decompiler插件(适用于Eclipse和IntelliJ IDEA),以及动态反编译工具如JRebel,它能在运行时反编译并更新代码。 总之,Java反编译器是开发工具箱中的重要组成部分...