英语法语德语意大利语葡萄牙语俄语西班牙语

OnWorks 网站图标

mips64el-linux-gnuabi64-gcj-5 - 云端在线

在 OnWorks 免费托管服务提供商中通过 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器运行 mips64el-linux-gnuabi64-gcj-5

这是命令 mips64el-linux-gnuabi64-gcj-5 可以使用我们的多个免费在线工作站之一在 OnWorks 免费托管服务提供商中运行,例如 Ubuntu Online、Fedora Online、Windows 在线模拟器或 MAC OS 在线模拟器

程序:

名称


gcj - Java 语言的提前编译器

概要


gcj [-IDIR...] [-d DIR...]
[--类路径=[--类路径=]
[-f选项...] [-编码=姓名]
[- 主要的=类名[-D姓名[=]...]
[-C[--资源 资源名称[-d 目录]
[-W警告...]
源文件...

商品描述


As c 只是另一个前端 GCC,它支持许多与 gcc 相同的选项。
本手册仅记录了特定于 c.

配置


输入 产量
A c 命令就像一个 GCC 命令,因为它由许多选项和文件组成
名称。 支持以下类型的输入文件名:

文件.java
Java 源文件。

文件。类
Java字节码文件。

文件邮编
文件的.jar
包含一个或多个“.class”文件的存档,所有这些文件都经过编译。 这
存档可能会被压缩。 存档中不以结尾的文件 。类 ,那恭喜你,
视为资源文件; 它们被编译到生成的目标文件中 核心:
网址。

@文件
包含以空格分隔的输入文件名列表的文件。 (目前,这些
必须都是“.java”源文件,但这可能会改变。)每个命名文件都被编译,
就像它一直在命令行上一样。

图书馆.a
图书馆。所以
-l库名
链接时使用的库。 见 GCC 手册。

您可以指定多个输入文件 c 命令行,在这种情况下,他们将
全部编译。 如果您指定“-o 文档名称” 选项,所有输入文件都将是
编译在一起,产生一个单一的输出文件,命名为 文件名. 这甚至是允许的
使用“-S”或“-c”时,但不使用“-C”或“--resource”时。 (这是一个扩展
超越什么平原 GCC 允许。)(如果指定了多个输入文件,则所有输入文件都必须
目前是“.java”文件,但我们希望解决这个问题。)

输入 附加选项
c 有选项来控制它在哪里寻找它需要的文件。 例如, c 可能
需要加载一个被要求编译的文件引用的类。 喜欢
Java 语言的其他编译器, c 有一个概念 。 有
可用于操作类路径的几个选项和环境变量。
什么时候 c 寻找给定的类,它搜索类路径寻找匹配 。类
or .java 文件中。 c 带有一个内置的类路径,它指向已安装的
库文件, 一个包含所有标准类的文件。

在下面的文本中,目录或路径组件可以引用实际目录
在文件系统上,或到 邮编 or 的.jar 文件,其中 c 将搜索好像它是一个
目录。

-IDIR
“-I”指定的所有目录都按顺序保存并附加到类路径
从所有其他选项构建。 除非与“javac”等工具兼容
很重要,我们建议始终使用“-I”而不是其他选项
操作类路径。

--classpath=
这将类路径设置为 , 以冒号分隔的路径列表(在基于 Windows 的
系统,以分号分隔的路径列表)。 这不会覆盖内置
(“引导”)搜索路径。

--类路径=
“--classpath”的同义词已弃用。

--bootclasspath=
在哪里可以找到标准的内置类,例如“java.lang.String”。

--extdirs=
对于目录中的每个 , 将该目录的内容放在
类路径。

类路径
这是一个保存路径列表的环境变量。

最终的类路径构造如下:

* 首先是通过“-I”指定的所有目录。

*如果 --类路径 被指定,它的值被附加。 否则,如果“CLASSPATH”
指定环境变量,然后附加其值。 否则,当前
目录(“.”)被附加。

* 如果指定了“--bootclasspath”,则附加其值。 否则,附加内置
系统目录, 库文件.

* 最后,如果指定了“--extdirs”,则附加指定的内容
类路径末尾的目录。 否则,追加内容
在“$(prefix)/share/java/ext”的内置 extdirs。

构建的类文件 c 对于类“java.lang.Object”(并放置在“libgcj.jar”中)
包含一个特殊的零长度属性“gnu.gcj.gcj-compiled”。 编译器寻找
这个属性在加载“java.lang.Object”的时候没有找到就会报错,
除非它编译为字节码(选项“-fforce-classes-archive-check”可用于
在这种特殊情况下覆盖此行为。)

-fforce-classes-归档检查
这会强制编译器始终检查特殊的零长度属性
“java.lang.Object”中的“gnu.gcj.gcj-compiled”,如果没有找到就会报错。

-fsource=VERSION
此选项用于选择接受的源版本 c。 默认是 1.5.

编码
Java 编程语言始终使用 Unicode。 努力整合好
与其他地区, c 允许 .java 要使用几乎任何编码写入的文件。 c
知道如何在编译时将这些编码转换为其内部编码。

您可以使用“--encoding=姓名” 指定编码的选项(特定字符的
设置)用于源文件。 如果未指定,则默认编码来自
您当前的语言环境。 如果您的主机系统没有足够的语言环境支持,则 c
假设默认编码为 UTF-8 Unicode 编码。

要实现“--encoding”, c 只需使用主机平台的“iconv”转换例程。
这意味着在实践中 c 受主机平台能力的限制。

参数“--encoding”允许的名称因平台而异(因为它们
在任何地方都没有标准化)。 然而, c 实现命名的编码 UTF-8
在内部,因此如果您选择将其用于源文件,您可以放心
将适用于每个主机。

</p>
c 实施几个警告。 与其他通用 GCC 警告,如果一个选项
表单“-Wfoo”启用警告,然后“-Wno-foo”将禁用它。 这里我们选择了
记录将产生影响的警告形式——默认为
与所列内容相反。

-冗余修饰符
有了这面旗帜, c 将警告多余的修饰符。 例如,它会警告
如果接口方法被声明为“public”。

-外来分号
这导致 c 警告空语句。 空语句已
已弃用。

-Wno-out-of-date
这个选项会导致 c 当源文件比匹配的文件新时不发出警告
类文件。 默认情况下 c 将对此发出警告。

-Wno-弃用
如果引用了已弃用的类、方法或字段,则发出警告。

-未使用
这和 GCC的“-Wunused”。

-墙
这与“-Wredundant-modifiers -Wextraneous-semicolon -Wunused”相同。

链接
要将 Java 应用程序转换为可执行程序,您需要将它与所需的链接
库,就像 C 或 C++ 一样。 默认情况下,链接器查找名为的全局函数
“主要的”。 由于 Java 没有全局函数,Java 类的集合可能
有多个具有“main”方法的类,您需要让链接器知道哪个类
启动应用程序时应该调用的那些“主要”方法。 你可以这样做
以下任何一种方式:

* 在链接应用程序时指定包含所需“main”方法的类,
使用“--main”标志,如下所述。

* 将 Java 包链接到共享库 (dll) 而不是可执行文件。 然后
使用“gij”程序调用应用程序,确保“gij”可以找到
它需要的库。

* 使用标志“-lgij”链接 Java 包,该标志链接在“main”例程中
来自“gij”命令。 这允许您选择“主要”方法的类
想在运行应用程序时运行。 您还可以使用其他“gij”标志,例如
“-D”标志设置属性。 使用“-lgij”库(而不是“gij”
前一种机制的程序)有一些优点:它与静态兼容
链接,并且不需要配置或安装库。

这些“gij”选项与链接可执行文件有关:

--主要=班级名称
链接时使用此选项以指定其“main”方法的类的名称
应在生成的可执行文件运行时调用。

-D姓名[=]
此选项只能与“--main”一起使用。 它定义了一个名为的系统属性 姓名
有价值 。 如果 未指定则默认为空字符串。
这些系统属性在程序启动时被初始化并且可以被检索
在运行时使用“java.lang.System.getProperty”方法。

-lgij
创建一个应用程序,其命令行处理是“gij”命令的处理。

此选项是使用“--main”的替代方法; 你不能同时使用两者。

-static-libgcj
此选项会导致针对 libgcj 运行时的静态版本进行链接
图书馆。 只有存在相应的链接器支持时,此选项才可用。

警告: libgcj 的静态链接可能会导致 libgcj 的重要部分被省略。
libgcj 的某些部分使用反射在运行时加载类。 由于链接器
在链接时看不到这些引用,它可以省略被引用的类。 这
结果通常(但不总是)是在运行时抛出的“ClassNotFoundException”。
使用此选项时必须小心。 有关更多详细信息,请参阅:
<http://gcc.gnu.org/wiki/Statically%20链接%20libgcj>

代码
除了很多 GCC 控制代码生成的选项, c 有几个选项
特定于自身。

-C 这个选项用来告诉 c 生成字节码(。类 文件)而不是对象
码。

--资源 资源名称
这个选项用来告诉 c 将给定文件的内容编译为目标代码
因此可以在运行时使用核心协议处理程序访问它 核:/资源-
姓名。 注意 资源名称 是在运行时找到的资源名称; 为了
例如,它可以用于调用“ResourceBundle.getBundle”。 实际文件
以这种方式编译的名称必须单独指定。

-f目标=VERSION
这可以与 -C 选择发出的字节码版本 c。 该
默认是 1.5. 不生成字节码时,此选项无效。

-d 目录
当与“-C”一起使用时,这会导致所有生成 。类 要放入的文件
适当的子目录 目录. 默认情况下,它们将放在子目录中
当前工作目录的。

-fno-边界检查
默认情况下, c 生成检查所有数组索引边界的代码
操作。 使用此选项,将省略这些检查,从而提高性能
对于广泛使用数组的代码。 请注意,这可能会导致不可预测的
如果有问题的代码确实违反了数组边界约束,则行为。 它
如果您确定您的代码永远不会抛出异常,则使用此选项是安全的
“ArrayIndexOutOfBoundsException”。

-fno-商店检查
不要生成数组存储检查。 将对象存储到数组中时,运行时检查
通常生成是为了确保对象与赋值兼容
数组的组件类型(在编译时可能未知)。 有了这个
选项,这些检查被省略。 这可以提高存储代码的性能
经常将对象放入数组中。 如果您确定自己的
代码永远不会抛出“ArrayStoreException”。

-fjni
c 编写本地方法有两种选择:CNI 和 JNI。 默认情况下
c 假设您使用的是 CNI。 如果您正在使用本机方法编译一个类,并且
这些方法是使用 JNI 实现的,那么您必须使用“-fjni”。 这个选项
原因 c 生成将调用底层 JNI 方法的存根。

-fno-断言
不要识别“assert”关键字。 这是为了与旧版本兼容
的语言规范。

-fno-optimize-static-class-initialization
当优化级别大于等于“-O2”时, c 将尝试优化
首次使用时调用运行时初始化静态类的方式
(如果指定了“-C”,则不执行此优化。)编译为本机时
代码,“-fno-optimize-static-class-initialization”将关闭此优化,
无论使用的优化级别如何。

--禁用断言[=类或包]
不要在编译后的代码中包含用于检查断言的代码。 如果
"=类或包” is missing 禁用所有类的断言代码生成,
除非被更具体的“--enable-assertions”标志覆盖。 如果 类或包
是类名,仅禁用在命名类中生成断言检查或
它的内部类。 如果 类或包 是一个包名,禁用生成
指定包或子包内的断言检查。

默认情况下,在生成类文件或未优化时启用断言,
并在生成优化的二进制文件时禁用。

--启用断言[=类或包]
生成代码以检查断言。 该选项可能命名错误,因为您仍然需要
在运行时打开断言检查,我们不支持任何简单的方法
那。 所以这个标志还不是很有用,除了部分覆盖
“--禁用-断言”。

-findirect-调度
c 具有特殊的二进制兼容性 ABI,由
“-findirect-dispatch”选项。 在这种模式下,生成的代码 c 荣誉
Java 语言规范中的二进制兼容性保证,以及由此产生的
目标文件不需要直接链接到它们的依赖项。 反而,
在运行时查找所有依赖项。 这允许自由混合解释和
编译的代码。

注意,目前“-findirect-dispatch”只能在编译时使用 。类
文件。 从源代码编译时它将不起作用。 CNI 还不能与
二进制兼容性 ABI。 这些限制将在未来取消
释放。

但是,如果您使用标准 ABI 编译 CNI 代码,则可以从代码中调用它
使用二进制兼容性 ABI 构建。

-fbootstrap 类
这个选项可以用来告诉“libgcj”编译的类应该由
引导加载程序,而不是系统类加载程序。 默认情况下,如果你编译一个类
并将其链接到可执行文件中,它将被视为使用
系统类加载器。 这很方便,因为这意味着诸如
"Class.forName()" 将搜索 类路径 找到所需的类。

-减反射
此选项导致生成的代码 c 包含减少数量的类
用于支持运行时反射的元数据。 这种节省的成本是损失
能够使用标准 Java 运行时的某些反射功能
环境。 当设置所有元数据时,除了需要获得正确的元数据
消除了运行时语义。

对于不使用反射的代码(即序列化、RMI、CORBA 或调用方法)
在“java.lang.reflect”包中),“-freduced-reflection”将导致正确的
节省可执行代码大小的操作。

JNI(“-fjni”)和二进制兼容性 ABI(“-findirect-dispatch”)不起作用
没有完全反射元数据。 因此,使用它是错误的
这些选项带有“-freduced-reflection”。

警告: 如果没有反射元数据,使用“SecurityManager”的代码可能
不能正常工作。 如果调用方法有,则调用“Class.forName()”也可能失败
没有反射元数据。

配置时间 附加选项
c 代码生成选项会影响生成的 ABI,因此只能是
在配置运行时包“libgcj”时有意义地给出。 “libgcj”把
从该组中选择合适的选项 规格 读取的文件 c. 这些选项
在这里列出是为了完整性; 如果您使用的是“libgcj”,那么您将不想触摸
这些选项。

-fuse-boehm-gc
这允许使用 Boehm GC 位图标记代码。 特别是这会导致
c 将对象标记描述符放入每个 vtable。

-fhash-同步
默认情况下,同步数据(用于“同步”、“等待”和
"notify") 由每个对象中的一个词指向。 有了这个选项 c 假设
此信息存储在哈希表中,而不是存储在对象本身中。

-fuse-divide-subroutine
在某些系统上,会调用库例程来执行整数除法。 这是
除以零时需要正确处理异常。

-fcheck-references
在某些系统上,每次访问对象时都需要插入内联检查
通过参考。 在其他系统上你不需要这个,因为空指针访问
由处理器自动捕获。

-fuse-atomic-builtins
在某些系统上,GCC 可以为内置原子操作生成代码。 用这个
在编译 Java 代码时强制 gcj 使用这些内置函数的选项。 这哪里
能力存在它应该被自动检测到,所以你通常不需要
使用此选项。

使用 onworks.net 服务在线使用 mips64el-linux-gnuabi64-gcj-5


Ad


Ad

最新的 Linux 和 Windows 在线程序