SKILL.md 1.1 KB


name: java8-utf8-compile description: >- Compile or rebuild this Java 8 MES client with UTF-8 encoding and JDK 8 only. Use whenever compiling Java, running javac, fixing class file version errors

(55.0 vs 52.0), or building mesclient-qmOP180A / similar Java 8 projects.

Java 8 + UTF-8 编译

When to use

  • 任何 javac / Rebuild / 编译失败
  • 报错:类文件具有错误的版本 55.0, 应为 52.0

Rules

  1. Always pass -encoding UTF-8
  2. Always target Java 8: -source 1.8 -target 1.8 (class major 52)
  3. Never leave Java 11+ class files (major 55) in bin/

Compiler

Prefer:

D:\java\jdk-8u202\bin\javac.exe

Fallback: D:\java\jdk-8\bin\javac.exe

Example

$javac8 = "D:\java\jdk-8u202\bin\javac.exe"
$src = "src"
$out = "bin"
$lib = "lib"
$cp = ((Get-ChildItem "$lib\*.jar").FullName -join ";") + ";$out"
& $javac8 -encoding UTF-8 -source 1.8 -target 1.8 -cp $cp -d $out @(Get-ChildItem "$src\com\mes\plc\*.java").FullName

Recovery

Delete bad classes under bin/com/mes/... then recompile with JDK 8 as above.