Swift Java 互操作性工具和库使用教程
swift-java 项目地址: https://gitcode.com/gh_mirrors/sw/swift-java
1. 项目介绍
本项目是一个开源项目,旨在实现 Swift 和 Java 之间的互操作性。它包含了两个主要部分:JavaKit
和 jextract-swift
。JavaKit
是一个 Swift 库和宏生成器,允许 Swift 程序通过封装 Java 类为对应的 Swift 类型,从而直接调用任何封装的 Java API。jextract-swift
是一个源码生成工具,它类似于 JDK 的 jextract
,用于从 Java 源代码生成 Swift 代码,使得可以从 Java 调用 Swift。
本项目目前处于早期开发阶段,很多部分尚不完整,一切都在变化之中。项目的主要目的是为了创建一个合作和共同探索 Swift/Java 互操作性故事的环境。
2. 项目快速启动
在开始之前,请确保你已经安装了所需的 Swift 开发工具链和 JDK。
安装依赖
- Swift 工具链:访问 Swift 官方下载页面 下载最新的 Trunk Development (main) 工具链。
- JDK:对于
JavaKit
,需要 JDK 17 或更高版本;对于jextract-swift
,需要 JDK 22 或更高版本。
运行 JavaKit 示例
make javakit-run
这个命令会运行一个使用 Java 库的 Swift 代码示例。
运行 jextract-swift 示例
make jextract-run
这个命令会运行一个使用 Swift 库的 Java 代码示例。
运行测试
-
运行所有 Swift 代码测试:
swift test
-
运行所有 Java 代码测试:
./gradlew test
-
在 Linux 使用 Docker 运行测试:
docker-compose -f docker/docker-compose.yaml -f docker/docker-compose.2204.main.yaml run test-swift
或
docker-compose -f docker/docker-compose.yaml -f docker/docker-compose.2204.main.yaml run test-java
3. 应用案例和最佳实践
JavaKit (Swift -> Java) 示例
你可以通过以下步骤运行一个简单的应用,展示 Swift 进程调用 Java 库:
cd Samples/JavaKitSampleApp
swift build
java -cp .build/plugins/outputs/javakitsampleapp/JavaKitExample/destination/JavaCompilerPlugin/Java -Djava.library.path=.build/debug com.example.swift.JavaKitSampleMain
jextract (Java -> Swift) 示例
要运行一个简单的示例应用,展示 Java 调用 Swift 的方法,可以:
./gradlew Samples:SwiftKitSampleApp:run
这将生成必要的源代码(通过调用 jextract,从 Sources/ExampleSwiftLibrary
提取)并在 src/generated/java
目录下生成 Java 源代码。
4. 典型生态项目
本项目目前还没有发布具体的版本和包,但你可以通过查看项目中的依赖和模块来了解其生态系统。项目使用多种语言,主要是 Swift 和 Java,还包含了 C、Shell、Makefile、Groovy 和 Dockerfile 等其他语言和工具。随着项目的发展,预计将会有更多的模块和工具加入到生态中。
swift-java 项目地址: https://gitcode.com/gh_mirrors/sw/swift-java