วันพุธ, มีนาคม 18, 2558

แก้ปัญหา Java 7 บน OSX หา classes.jar ไม่เจอ | Missing classes.jar on OSX Java 7

   ไป fork เอา testdriven/psi-probe มาจาก github พยายามจะ build มันออกมาใช้งานให้ได้ เนื่องจาก psi-probe ของเดิมอยู่ที่ googlecode แล้ว google ก็จะเลิกบริการตัวนี้แล้ว หาโหลด psiprobe.war ไม่ได้จากที่ไหนเลย

 fork มาแล้ว @testdriven เค้ามีเขียน module เพิ่มเติมเข้าไปด้วย build ไปที่ละ module จนพบว่า minimum JDK คือ version 7 เพื่อความรวดเร็ว ก็เลยไม่พยายามจะ downgrade ลงมา แก้ dependencies หลายๆตัวจนผ่านมาถึง module สุดท้ายแล้ว psi-probe-web มันติด error แบบนี้

Missing tools.jar at: /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home/Classes/classes.jar


  โอ๊วไม่ มันจะไม่มีได้ยังไง classes.jar พอไป googling ดูถึงพบว่า ใน OSX package เค้ามีการเปลี่ยนแปลงไปแล้ว reference. classes.jar ไม่มีแล้ว classes ทั้งหลายไปอยู่ใน rt.jar

  วิธีแก้ก็ต้อง hack ครับ -_-" ไปทำ symbolic link ให้ maven มันเห็นซะ


$ cd /Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home
$ sudo mkdir Classes
Password:
$ sudo ln -s ../jre/lib/rt.jar classes.jar
$ ls -l
...
lrwxr-xr-x  1 root  wheel  17 Mar 18 16:24 classes.jar -> ../jre/lib/rt.jar
...

compile maven project ผ่านแล้วทีนี้ :)