http://www.oschina.net/p/azzet
Azzet 是一个简单的 Java 类库,用于从不同的源中加载资源。
示例代码:
BufferedImage img = Assets.load("http://www.google.com/logos/classicplus.png"); // loaded from website
Font fnt = Assets.load("myfont.ttf", new FontInfo(32.0f)); // loaded from classpath
Clip snd = Assets.load("C:\UserData\MyMusic.wav"); // loaded from file-system
BufferedImage gif = Assets.loadFrom("mygif.gif", BufferedImage.class); // you can request the return type
BufferedImage[] animatedGif = Assets.loadFrom("mygif.gif", "db"); // loads from DatabaseSource saved as "db"
Properties props = Assets.loadFrom("app.properties", "tcp"); // loads from TcpSource saved as "tcp"
支持的格式包括:
JSON (org.magnos.asset.json.JsonValue)
XML (org.w3c.dom.Document)
PROPERTIES/XML/CONFIG (java.util.Properties, org.magnos.asset.props.Config)
GIF (java.awt.image.BufferedImage[])
PNG/BMP/WBMP/JPEG/JPG (java.awt.image.BufferedImage)
MID/MIDI (javax.sound.midi.Sequence)
WAV/AU/AIFF/SND (javax.sound.sampled.Clip)
TTF (java.awt.Font)
CSV (org.magnos.asset.csv.Table)
CLASS/CLAZZ (java.lang.Class)
JAR (org.magnos.asset.java.Jar)
ZIP (org.magnos.asset.zip.Zip)
GZ (org.magnos.asset.AssetInfo)
DAT (byte[], java.io.InputStream, java.nio.ByteBuffer, java.io.ByteArrayOutputStream)
TXT (java.lang.String, char[], java.nio.CharBuffer, java.lang.StringBuffer, java.lang.StringBuilder)
支持的数据源:
Classpath
File-System
Database
JAR
FTP
HTTP/HTTPS
UDP
TCP
SSL
UDP Multicast
示例代码:
FutureAssetBundle bundle = new FutureAssetBundle();
bundle.add( Assets.loadFuture("image.gif", BufferedImage.class) );
bundle.add( Assets.loadFuture("sound.wav", Clip.class) );
BufferedImage image = null;
Clip sound = null;
// game loop
while (running) {
// do stuff
// this occurs during the loading screen....
if (bundle.isComplete()) {
bundle.loaded(); // notify all FutureAsset implementations the asset has been accepted.
image = bundle.getAsset("image.gif");
sound = bundle.getAsset("sound.wav");
// move from loading to play screen
} else {
display bundle.percentComplete();
}
// do other stuff
}
分享到:
相关推荐
- **资源管理**:加载的动态链接库可能会占用系统资源,应确保适当管理这些资源,避免内存泄漏等问题。 - **安全问题**:使用JNI可能会带来一些安全风险,例如数据类型不匹配可能导致的安全漏洞,需要谨慎处理。 ...
Java3D加载3D模型的技术 Java3D是一种基于Java的三维图形编程接口,用于加载和显示三维模型文件。下面是Java3D加载3D模型的技术要点: 1. Java3D概述 Java3D是一种基于Java的三维图形编程接口,由Sun ...
在Java编程语言中,动态加载jar文件是一种关键的特性,它允许程序在运行时加载新的类库或组件,而不是在编译时静态地链接。这种技术对于实现插件式开发或者模块化系统至关重要,因为它提供了灵活性和可扩展性。下面...
Java热加载Class文件是开发者在调试和优化代码时非常实用的一种技术,它允许开发者在不重启JVM的情况下更新和替换已加载的类,极大地提高了开发效率。本文将深入探讨Java热加载Class文件的相关知识点。 首先,理解...
在JNA中,我们可以定义一个Java接口来代表动态库中的函数,并通过Platform.loadLibrary()加载库,然后像调用Java方法一样调用本地函数。 2. jna调用动态库实例 - 直接Java文件main方法调用:在独立的Java应用中,...
在Java编程中,动态加载JAR或ZIP包是一项重要的技术,它允许程序在运行时根据需求加载外部库,而不是在编译时静态地链接。这种技术对于实现插件化、模块化系统,或者处理频繁更新的组件非常有用。下面将详细讲解如何...
深入探讨 Java 类加载器.wps深入探讨 Java 类加载器.wps深入探讨 Java 类加载器.wps
类加载器是 Java 语言的一个创新,也是 Java 语言流行的重要原因之一。它使得 Java 类可以被动态加载到 Java 虚拟机中并执行。类加载器从 JDK 1.0 就出现了,最初是为了满足 Java Applet 的需要而开发出来的。Java ...
标题“Java加载dll,导致Java进程内存泄露”涉及到的是Java平台与本地库(DLL)交互时可能出现的问题。在Java中,通过Java Native Interface (JNI) 可以调用C/C++编写的动态链接库(DLL),实现Java代码与本地代码的...
这样可以避免类的重复加载,并保证Java核心库的稳定。 4. **自定义类加载器** 开发者可以创建自己的类加载器来实现特定的需求,比如动态加载、插件系统等。自定义类加载器通常继承自`java.lang.ClassLoader`类,...
1. 引入Groovy库:在Java项目中添加Groovy的相关依赖,通常是`groovy-all`,确保Java能够访问Groovy运行时环境。 2. 创建GroovyClassLoader:使用这个类加载器可以动态加载和执行Groovy脚本。它继承自Java的...
- **加载库**:在Java代码中加载生成的库文件,使用`System.loadLibrary`方法。 - **测试运行**:运行Java程序,调用本地方法,验证与本地库的交互是否正常。 4. **提供的编译脚本** - `clean.bat` 和 `clean.sh...
利用swt中的一个获取图片的类SwingResourceManager 来解决将程序打为使用java打包之后,生成的jar包中图片找不着的。这是因为通过class.getResource()方法在IDEA中运行的路径和生成jar包获取的的路径是不同的。打成...
- **Java调用示例**:这些示例代码展示了如何在Java中加载和使用JNI库,调用GMSSL的加密、解密、签名和验证等功能。开发者可以通过阅读和运行这些示例来了解如何在自己的项目中集成GMSSL。 集成过程通常包括以下...
总结:使用JNI调用C++库的过程涉及Java和C++的协同工作,包括Java环境配置、JNI接口设计、头文件生成、C++源码编写、编译生成DLL以及在Java中加载和调用。整个过程需要对两种语言都有一定的了解,但通过这种方式,...
Java URLClassLoader 是Java标准库中的一个类加载器,它允许我们动态地从指定的URL位置加载类和资源。这个功能在开发插件系统、热部署或者处理多种版本库的场景中非常有用。从JDK 1.2开始,`java.net.URLClassLoader...
在Java应用开发中,特别是Web应用程序的构建过程中,资源文件(如配置文件、属性文件等)的加载是必不可少的一部分。本文将重点探讨Java环境下不同方式下的文件加载方法,尤其关注在Spring框架下的实践与应用。 ###...
首先,JVM(Java Virtual Machine)是JRE(Java Runtime Environment)的一部分,它是一个动态链接库,负责执行Java程序。JDK中的JRE用于运行Java自带的工具,如`javac`,而系统中的JRE用于运行用户编写的Java程序。...
3. **系统类加载器(System ClassLoader)**:也称为应用类加载器,由sun.misc.Launcher$AppClassLoader实现,它负责加载用户类路径(ClassPath)上的所有类和资源。 4. **自定义类加载器(User-defined ...
总之,通过Java的静态代码块和类加载器,我们可以有效地管理和加载资源文件,特别是属性配置文件,确保在程序启动时即完成初始化工作,提升应用性能。这种技术在大型复杂系统中尤其常见,因为它能够保证配置的正确性...