如何使用 javac 编译 Java 类,甚至不依赖于 java.lang.* 这样的基类?

问题描述 投票:0回答:1

我想用最新版本的

javac
(例如
11.0.19
)“重新创建”J2ME / CLDC,并编译一个专门构建的Java程序,而不需要任何最小基类。显然,像
java.lang.Object
java.lang.String
(等)这样的类需要存在,因为它们是核心功能。但除此之外,我想提供自己的“设备特定”类(例如,使用本机绑定)并使用标准
javac
编译器。

我已经摆弄了一些选项

--module-source-path
-profile
--class-path
(以及其他),但没有取得多大成果。这些开关的文档也非常“薄”。

是否有更好的文档或者是否有可能获得预期的结果?

java compilation java-me javac
1个回答
0
投票

如何使用 javac 编译 Java 类,甚至不依赖于 java.lang.* 这样的基类?

第一步是查找或准备一个(或多个)JAR 文件,其中包含所有“核心”类的类文件。对于 J2ME / CLDC,您应该能够从现有发行版获取现有 JAR 文件。请注意,

javac
只需要类的 API 签名,因此您可以使用包含“存根”类的 JAR;即没有任何实际实现细节的类。

然后使用

--bootclasspath
选项告诉
javac
在哪里可以找到核心依赖项。例如:

javac ... -bootclasspath /path/to/cldc.jar ... Hello.java
© www.soinside.com 2019 - 2024. All rights reserved.