Swift Java 互操作性工具和库使用教程

Swift Java 互操作性工具和库使用教程

swift-java swift-java 项目地址: https://gitcode.com/gh_mirrors/sw/swift-java

1. 项目介绍

本项目是一个开源项目,旨在实现 Swift 和 Java 之间的互操作性。它包含了两个主要部分:JavaKitjextract-swiftJavaKit 是一个 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 swift-java 项目地址: https://gitcode.com/gh_mirrors/sw/swift-java

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黎情卉Desired

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值