<dependency> <groupId>cz.mallat</groupId> <artifactId>uasparser</artifactId> <version>0.6.1</version> </dependency> <dependency> <groupId>com.googlecode.jregex</groupId> <artifactId>jregex</artifactId> <version>1.2_01</version> </dependency>
import cz.mallat.uasparser.OnlineUpdater;
import cz.mallat.uasparser.UASparser;
import cz.mallat.uasparser.UserAgentInfo;
public class UserAgentUtil {
private static UASparser uasParser;
static {
try {
uasParser = new UASparser(OnlineUpdater.getVendoredInputStream());
} catch (IOException e) {
throw new RuntimeException("User-Agent 解析器初始化失敗", e);
}
}
public static UserAgentInfo parse(String userAgent) {
try {
return uasParser.parse(userAgent);
} catch (IOException e) {
throw new RuntimeException("解析失敗: " + userAgent, e);
}
}
// 主方法演示
public static void main(String[] args) {
String ua = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/44.0.2403.130 Safari/537.36";
UserAgentInfo info = parse(ua);
System.out.println("操作系統家族: " + info.getOsFamily());
System.out.println("操作系統: " + info.getOsName());
System.out.println("瀏覽器家族: " + info.getUaFamily());
System.out.println("瀏覽器版本: " + info.getBrowserVersionInfo());
System.out.println("設備類型: " + info.getDeviceType());
System.out.println("瀏覽器名稱: " + info.getUaName());
System.out.println("類型: " + info.getType());
}
}
操作系統家族: Windows 操作系統: Windows 7 瀏覽器家族: Chrome 瀏覽器版本: 44.0.2403.130 設備類型: Computer 瀏覽器名稱: Chrome 類型: Browser

Chrome 開發者工具 → Network → 請求頭 → User-Agent。

類初始化觸發條件(JLS §12.4.1):
new、反射、反序列化)Class.forName 等main 方法)regexes.yaml(uasparser 內置),支援最新瀏覽器/設備。