#java-class #class #java #jvm #classloader

ristretto_classloader

用于加载 Java 类的库

3 个版本 (破坏性更新)

新功能 0.7.0 2024 年 8 月 20 日
0.6.0 2024 年 8 月 15 日
0.5.0 2024 年 8 月 9 日

#752开发工具

Download history 99/week @ 2024-08-05 110/week @ 2024-08-12

每月 209 次下载

Apache-2.0 OR MIT

625KB
15K SLoC

Ristretto ClassLoader

ci Documentation Code Coverage Benchmarks Latest version License Semantic Versioning

入门指南

用于加载 Java 类的 JVM 类加载器实现。类可以从文件系统或 URL 加载;支持 jar 和模块。可以从任何版本的 AWS Corretto 创建运行时 Java 类加载器。运行时类加载器将下载并安装请求的 Corretto 版本,并创建一个用于加载 Java 类的类加载器。

AWS Corretto 运行时安装的目录如下

  • Unix: $HOME/.ristretto/<version>
  • Windows: %USERPROFILE%\.ristretto\<version>

示例

use ristretto_classloader::{ClassLoader, ClassPath, Result};
use std::sync::Arc;

#[tokio::main]
async fn main() -> Result<()> {
    #[tokio::main]
    async fn main() -> Result<()> {
        let (version, class_loader) = runtime::class_loader("21").await?;
        let class_name = "java.util.HashMap";
        println!("Loading {class_name} from Java runtime {version}");
        let class = ClassLoader::load_class(&Arc::new(class_loader), class_name).await?;
        println!("{class:?}");
        Ok(())
    }
}

功能标志

以下功能可用

名称 描述 默认?
url 启用 URL 类路径条目

安全性

这些软件包使用 #![forbid(unsafe_code)] 确保所有内容都在 100% 安全的 Rust 中实现。

许可

以下任一许可下授权

贡献

除非您明确声明,否则根据Apache-2.0许可证定义,您有意提交的任何贡献,包括但不限于工作,都将以上述方式双重授权,不附加任何额外条款或条件。

VSCode Development Container
GitHub Codespaces

依赖项

~9–23MB
~369K SLoC