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
}
分享到:
相关推荐
Azzet 是一个简单的 Java 类库,用于从不同的源中加载资源。示例代码:BufferedImage img = Assets.load("http://www.google.com/logos/classicplus.png"); // loaded from website Font fnt = Assets....
- **资源管理**:加载的动态链接库可能会占用系统资源,应确保适当管理这些资源,避免内存泄漏等问题。 - **安全问题**:使用JNI可能会带来一些安全风险,例如数据类型不匹配可能导致的安全漏洞,需要谨慎处理。 ...
在Java编程语言中,动态加载jar文件是一种关键的特性,它允许程序在运行时加载新的类库或组件,而不是在编译时静态地链接。这种技术对于实现插件式开发或者模块化系统至关重要,因为它提供了灵活性和可扩展性。下面...
Java热加载Class文件是开发者在调试和优化代码时非常实用的一种技术,它允许开发者在不重启JVM的情况下更新和替换已加载的类,极大地提高了开发效率。本文将深入探讨Java热加载Class文件的相关知识点。 首先,理解...
1. **Bootstrap ClassLoader(启动类加载器)**:这是最顶层的类加载器,负责加载核心库(如`rt.jar`),它是由本地代码实现的。 2. **Extension ClassLoader(扩展类加载器)**:它加载位于`JAVA_HOME/lib/ext`目录...
Java的类加载机制采用双亲委派模型,即每个类加载器在尝试加载类时,都会将任务委托给其父类加载器,直到Bootstrap ClassLoader,如果父类加载器无法加载,则子类加载器才会尝试自己加载。我们可以自定义类加载器来...
Java软件开发魔典资源库 学习笔记 Java软件开发魔典资源库 学习笔记 Java软件开发魔典资源库 学习笔记 Java软件开发魔典资源库 学习笔记 Java软件开发魔典资源库 学习笔记 Java软件开发魔典资源库 学习笔记 Java软件...
在Java编程中,有时我们需要动态地加载外部JAR文件,并执行其中特定的类方法,这在插件系统、模块化应用或动态扩展性需求中尤为常见。本篇将详细讲解如何实现这一目标。 首先,理解JAR(Java Archive)文件是Java...
在JNA中,我们可以定义一个Java接口来代表动态库中的函数,并通过Platform.loadLibrary()加载库,然后像调用Java方法一样调用本地函数。 2. jna调用动态库实例 - 直接Java文件main方法调用:在独立的Java应用中,...
在Java编程中,动态加载JAR或ZIP包是一项重要的技术,它允许程序在运行时根据需求加载外部库,而不是在编译时静态地链接。这种技术对于实现插件化、模块化系统,或者处理频繁更新的组件非常有用。下面将详细讲解如何...
2. **扩展类加载器(Extension Class Loader)**:负责加载`java.ext.dirs`系统属性指定路径下的扩展库。这些类库提供了Java运行时之外的功能。 3. **应用程序类加载器(Application Class Loader)**:也称为系统类...
深入探讨 Java 类加载器.wps深入探讨 Java 类加载器.wps深入探讨 Java 类加载器.wps
- 在Java中,我们可以使用各种库来解析和加载这些3D模型,如J3D(Java 3D)、JMonkeyEngine或j3mdk等。这些库提供了API,可以读取OBJ和STL文件,并将数据转化为Java对象,以便进一步处理。 3. **HTML页面展示3D...
而SPI机制则提供了一种通用的方式来扩展Java平台功能,使得Java开发者可以在不修改源码的情况下增强平台或第三方库的功能。在实际开发过程中,深入理解和正确使用这两个机制,对于提升软件的灵活性、可维护性以及可...
让Java支持热加载是个不错的想法。如何做到的呢? 1. 定义好接口和实现类 2. 让代理类通过反射的方式调用实现类,对外暴露的是代理类。 3. 自定义URLClassLoader。检查实现类.class文件的修改时间,如果是更新的....
标题“Java加载dll,导致Java进程内存泄露”涉及到的是Java平台与本地库(DLL)交互时可能出现的问题。在Java中,通过Java Native Interface (JNI) 可以调用C/C++编写的动态链接库(DLL),实现Java代码与本地代码的...
自定义Java类加载器demo,自定义了一个classLoader,重写了loadClass 和findClass,注意 loadClass打破了双亲委派机制,所有的类都要在自定义的class文件中找到,而findClass遵循了双亲委派机制
Java 类加载器是Java虚拟机(JVM)的核心组成部分,它负责将编译后的字节码文件(.class文件)加载到JVM中并转换为运行时的数据结构。Tomcat,作为广泛使用的Java Servlet容器,它自定义了一套类加载机制,以满足Web...
总结来说,Java调用C++动态库是一个涉及多步骤的过程,包括生成JNI头文件、编写C++代码、编译动态库、加载库并在Java中调用本地方法。这个过程中需要考虑线程安全、数据类型转换以及异常处理等问题,以确保程序的...
加载JDBC驱动程序是Java应用程序访问数据库的第一步,这个过程涉及到Java的反射机制和Class.forName()方法。下面我们将深入探讨这一主题。 1. **JDBC驱动类型** JDBC驱动分为四种类型: - Type 1: JDBC-ODBC ...