百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
L

lwjgl3

> 编程语言
开源

LWJGL 是一个 Java 库,可实现跨平台访问常用的原生 API,这些 API 在图形(OpenGL、Vulkan、bgfx)、音频(OpenAL、O

5.4K stars0 点赞0 次浏览
访问官网GitHub

工具介绍

LWJGL 是一个 Java 库,可实现跨平台访问常用的原生 API,这些 API 在图形(OpenGL、Vulkan、bgfx)、音频(OpenAL、O

LWJGL - Lightweight Java Game Library 3

LWJGL (https://www.lwjgl.org) is a Java library that enables cross-platform access to popular native APIs useful in the development of graphics (OpenGL/Vulkan), audio (OpenAL) and parallel computing (OpenCL) applications. This access is direct and high-performance, yet also wrapped in a type-safe and user-friendly layer, appropriate for the Java ecosystem.

LWJGL is an enabling technology and provides low-level access. It is not a framework and does not provide higher-level utilities than what the native libraries expose. As such, novice programmers are encouraged to try one of the frameworks or game engines that make use of LWJGL, before working directly with the library.

LWJGL is open source software and freely available at no charge.

Useful links:

  • Wiki
  • Release Notes
  • JavaDoc
  • Blog

Contact:

  • Discord
  • Forum

If you'd like to contribute, see doc/README for a quick overview of the project structure, installation instructions and configuration options.

Getting Started

As of version 3.4.0 and JDK 25, LWJGL supports the FFM API and is fully functional when running with --sun-misc-unsafe-memory-access=deny. See the FFM documentation for details.

As of version 3.1.0, LWJGL is distributed as a set of modules. Only the core module is required and all bindings are optional (but some bindings depend on other bindings). The easiest way to download LWJGL is to use the build configurator on the website.

The build configurator generates Maven & Gradle declarations that can be added to existing projects. This is the easiest way to use LWJGL while developing.

LWJGL can also be downloaded as a simple set of JAR files. Each module consists of the following files:

  • lwjgl-<module>.jar
  • lwjgl-<module>-sources.jar
  • lwjgl-<module>-javadoc.jar
  • lwjgl-<module>-natives-<platform>.jar (for some bindings)

To compile and run an LWJGL application, the base and natives JAR files of the core module and each binding used should be added to the classpath. LWJGL extracts the natives to a temporary folder and loads them automatically, so no further configuration is necessary. If more customization is required (e.g. when creating a platform-specific installer) the natives may be extracted manually and loaded via java.library.path. See the Configuration class for more options.

LWJGL 3 requires Java 8 or later to build and run and currently supports the following platforms/architectures:

  • FreeBSD x64
  • Linux x64
  • Linux arm64 (ARMv8/AArch64)
  • Linux arm32 (ARMv7/armhf)
  • Linux ppc64le
  • Linux riscv64
  • macOS x64
  • macOS arm64
  • Windows x64
  • Windows x86
  • Windows arm64

Example code:

  • Samples (simple samples covering basic usage of LWJGL bindings)
  • Demo suite (includes advanced OpenGL and Vulkan demos)
  • Wiki tutorials

For migrating LWJGL 2 code to LWJGL 3, see the Migration Guide.

Troubleshooting

Most common issues faced by LWJGL users are trivially addressed with the following:

  • Installation guide (lwjgl3-wiki)
  • Troubleshooting guide (lwjgl3-wiki)
  • Memory FAQ (lwjgl3-wiki)

LWJGLX/debug is a Java Agent that will automatically detect a lot of these issues. It can also generate a trace log that's useful when reporting issues to LWJGL.

When asking for help or when you suspect a bug in LWJGL, preparing an MVCE (Minimal, Complete, and Verifiable example) that reproduces the issue will improve the chances of a quick and useful response.

List of Supported Bindings

Khronos APIs

Library Description EGL An interface between Khronos rendering APIs such as OpenGL ES or OpenVG and the underlying native platform window system. KTX (Khronos Texture) A lightweight container for textures for OpenGL®, Vulkan® and other GPU APIs. OpenCL An open, royalty-free standard for cross-platform, parallel programming of diverse processors found in personal computers, servers, mobile devices and embedded platforms. OpenGL The most widely adopted 2D and 3D graphics API in the industry, bringing thousands of applications to a wide variety of computer platforms. OpenGL ES A royalty-free, cross-platform API for full-function 2D and 3D graphics on embedded systems - including consoles, phones, appliances and vehicles. OpenXR A royalty-free, open standard that provides high-performance access to Augmented Reality (AR) and Virtual Reality (VR)—collectively known as XR—platforms and devices. Vulkan A new generation graphics and compute API that provides high-efficiency, cross-platform access to modern GPUs used in a wide variety of devices from PCs and consoles to mobile phones and embedded platforms.

Display and Input

Library Description GLFW Create multiple windows, handle user input (keyboard, mouse, gaming peripherals) and manage contexts. Also features multi-monitor support, clipboard access, file drag-n-drop, and much more. SDL Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL/Direct3D/Metal/Vulkan. JAWT The AWT native interface. Native File Dialog Extended A small C library that portably invokes native file open, folder select and file save dialogs. tinyfd A native dialog library.

Audio

Library Description FMOD An end-to-end solution for adding sound and music to any game. OpenAL A cross-platform 3D audio API appropriate for use with gaming applications and many other types of audio applications. OpenAL Soft An LGPL-licensed, cross-platform, software implementation of the OpenAL 3D audio API. Opus A totally open, royalty-free, highly versatile audio codec.

Graphics

Library Description Assimp A portable Open Source library to import various well-known 3D model formats in a uniform manner. bgfx Cross-platform, graphics API agnostic, “Bring Your Own Engine/Framework” style rendering library, licensed under permissive BSD-2 clause open source license. FreeType A freely available software library to render fonts. HarfBuzz A text shaping library that allows programs to convert a sequence of Unicode input into properly formatted and positioned glyph output — for any writing system and language. meshoptimizer A mesh optimization library that makes meshes smaller and faster to render. msdfgen A multi-channel signed distance field generator. NanoSVG A simple stupid SVG parser. NanoVG A small antialiased vector graphics rendering library for OpenGL. Nuklear A minimal state immediate mode graphical user interface toolkit written in ANSI C and licensed under public domain. par_octasphere Generates triangle meshes for spheres, rounded boxes, and capsules. par_shapes Generate parametric surfaces and other simple shapes. par_streamlines Triangulate wide lines and curves. Shaderc A collection of libraries for shader compilation. SPIRV-Cross A library for performing reflection on SPIR-V and disassembling SPIR-V back to high level languages. Tiny OpenEXR A small, single header-only library to load and save OpenEXR(.exr) images. Vulkan Memory Allocator An easy to integrate Vulkan memory allocation library. Yoga An open-source, cross-platform layout library that implements Flexbox.

stb - single-file public domain libraries for C/C++

Library Description stb_easy_font Quick-and-dirty easy-to-deploy bitmap font for printing frame rate, etc. stb_image Image loading/decoding from file/memory: JPG, PNG, TGA, BMP, PSD, GIF, HDR, PIC stb_image_resize Resize images larger/smaller with good quality. stb_image_write Image writing to disk: PNG, TGA, BMP stb_perlin Revised Perlin noise (3D input, 1D output). stb_rect_pack Simple 2D rectangle packer with decent quality. stb_truetype Parse, decode, and rasterize characters from truetype fonts. stb_vorbis Decode ogg vorbis files from file/memory to float/16-bit signed output.

Other

Library Description hwloc A portable abstraction of the hierarchical topology of modern architectures, including NUMA memory nodes, sockets, shared caches, cores and simultaneous multithreading. jemalloc A general purpose malloc implementation that emphasizes fragmentation avoidance and scalable concurrency support. libffi A portable, high level programming interface to various calling conventions. libspng libspng (simple png) is a C library for reading and writing Portable Network Graphics (PNG) format files with a focus on security and ease of use. LLVM A collection of modular and reusable compiler and toolchain technologies. LMDB An extraordinarily fast, memory-efficient database. With memory-mapped files, it has the read performance of a pure in-memory database while retaining the persistence of standard disk-based databases. LZ4 A lossless data compression algorithm that is focused on compression and decompression speed. mimalloc A compact general purpose allocator with excellent performance. ODBC A C programming language interface that makes it possible for applica

GitHub Issues· 0 开放

在 GitHub 查看全部

暂无开放 Issues,或尚未同步最近议题。

核心特点

  • •Release Notes
  • •lwjgl-&lt;module&gt;.jar
  • •lwjgl-&lt;module&gt;-sources.jar
  • •lwjgl-&lt;module&gt;-javadoc.jar
  • •lwjgl-&lt;module&gt;-natives-&lt;platform&gt;.jar (for some bindings)
  • •FreeBSD x64
  • •Linux x64
  • •Linux arm64 (ARMv8/AArch64)
  • •Linux arm32 (ARMv7/armhf)
  • •Linux ppc64le

> 标签

Javabindingsfmodfreetypeglfw

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类编程语言
定价开源

> 相关工具

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言