프로젝트 소개
JavaForce(JF)는 버전 118.1의 Java 라이브러리 및 SDK로, LGPL 라이선스 하에 제공되며 데스크톱 앱, 콘솔 앱, 시스템 서비스 구축을 목표로 합니다. Apache Ant로 빌드되며 JDK 25 이상이 필요합니다.
README에 설명된 핵심 기능:
- SIP/VoIP/RTSP 스택
- FFmpeg, OpenGL, Vulkan, OpenCL 및 카메라용 네이티브 바인딩
- PLC I/O
- 콘솔 앱, 데스크톱 앱, 시스템 서비스용 커스텀 네이티브 로더
- 앱을 msi, deb, rpm, pac 및 dmg로 패키징하는 Ant 태스크
JavaForce는 java.exe 대신 JVM을 임베드하고, 클래스패스를 설정하며, 네이티브 메서드를 등록하고 프로그램의 main 메서드를 시작하는 커스텀 네이티브 로더를 빌드합니다. 또한 커스텀 로더를 사용하지 않으려는 사용자를 위해 공유 라이브러리로 네이티브 메서드도 제공합니다. 프로젝트는 네이티브 액세스를 위해 JNI에서 FFM(Foreign Function & Memory) API로 전환했으며, 성능을 위해 배열을 고정하는 일부 JNI는 유지합니다.
포함된 애플리케이션: README에는 jfPhone, jfVideo Creator, jfAudio, jfMusic 등이 언급되며 전체 목록은 projects/readme.txt에 있습니다. JavaForce는 또한 Java가 통합된 Linux 배포판인 jfLinux의 핵심 라이브러리이며 Minecraft 클론인 jfCraft를 구축하는 데 사용됩니다.
저장소 구조: /src는 Java 소스, /lib는 생성 및 종속성 jar, /native는 네이티브 로더, /projects는 하위 프로젝트 소스, /iso, /linux, /windows는 빌드/설치 스크립트, /utils는 유틸리티 앱입니다.
빌드 워크플로우: git과 Ant를 설치하고, 줄 끝을 구성하고, 저장소를 클론하고, 버전 태그를 체크아웃하고, ant를 실행한 다음 네이티브 로더를 빌드합니다. 패키징 태스크에는 deb, rpm, pac, msi(번들 JRE 포함, WiX Toolset v4 이상 사용) 및 dmg(macOS에서 hdiutil 사용)가 포함됩니다. JRE 사전 링크 태스크(jre-all, jre-base, jre-base-desktop, jre-base-javac)는 네이티브 패키징을 지원합니다. JavaForce는 Maven Central에 게시되며, Ant 태스크가 종속성 다운로드 및 업로드를 처리하고 Sonatype 게시를 위해 최소 pom.xml이 필요합니다.
기타 기능: graalagent 및 graal Ant 태스크를 통한 GraalVM AOT 지원(GraalVM AWT 지원은 아직 작업 중), JF_DEBUG 및 JF_DEBUG_PORT 환경 변수 또는 .cfg 설정을 통한 JMX 디버깅, 그리고 CLASSPATH, MAINCLASS, DEBUG, DEBUG_PORT, OPTIONS, JAVA_HOME 및 METHOD를 제어하는 .cfg 파일 형식입니다.
요구 사항: JDK 25 이상, Apache Ant 1.10 이상, Linux의 gcc, Windows의 VC++ 및 WiX Toolset 4 이상, macOS의 Xcode gcc, OpenGL/Vulkan용 FFmpeg 7.1 이상 및 glfw 3.5.1. Wayland, Bluetooth 및 RDP 구성 요소는 작업 중으로 나열됩니다.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.