บทความนี้จะพาผู้อ่านไปใช้งานโค้ด Python ใน Java ง่าย ๆ ด้วย Jep กันครับ
Jep เป็นโมดูลสำหรับเชื่อมต่อการทำงานระหว่างภาษาไพทอนกับภาษาจาวา ใช้ zlib License
- รองรับทั้งไพทอน 2.7 และไพทอน 3
- JDK >= 1.7
pip install jep
เรียกใช้งานโค้ด Python ใน Java
ตั้งค่าก่อนใช้งาน
สำหรับ Windowsให้เพิ่ม path ที่ตั้งของ jep ดังนี้
ที่ตั้งไพทอน\Lib\site-packages\jepเข้าไปใน path ใน environmental variable
สำหรับ Linux
ให้เพิ่ม path ที่ตั้ง jep เข้าไป
ที่ตั้งไพทอน/site-packages/jepเข้าไปใน LD_LIBRARY_PATH ใน environmental variable
สำหรับ OS X
ให้เพิ่ม path ที่ตั้ง jep เข้าไป
ที่ตั้งไพทอน/site-packages/jepเข้าไปใน DY_LD_LIBRARY_PATH ใน environmental variable
การใช้งานโค้ดภาษาไพทอนในภาษาจาวา
ใน NetBeans ให้คลิกที่ Libraries > Add JAR/Folder...เข้าไปที่ ที่ตั้งไพทอน/site-packages/jep ทำการเลือก jep.jar เข้ามา
จากนั้น ใส่
import jep.Jep;เข้าไปในส่วนหัวโค้ดข้างบนนอก class
import jep.JepException;
แล้วลองโค้ดด้วยการใส่โค้ดตามตัวอย่างข้างล่างลงไปใน main แล้วลองรัน
ผลลัพธ์
Hello World
Hello World
ello Worl
คำสั่ง jep
- jep.eval(โค้ดไพทอน) ใช้รันโค้ดไพทอน
- jep.getValue(ค่าหรือตัวแปรไพทอน) ใช้ดึงค่าจากไพทอนเข้ามายังภาษาจาวา
ถ้าต้องการตัดคำภาษาไทยโดยใช้ PyThaiNLP สามารถทำได้ดังนี้
ผลลัพธ์
ทดสอบ|การ|ตัด|คำหากคุณไม่ได้ใช้ NetBeans คุณสามารถใช้งานได้เช่นกัน แต่ในเวลาทำการแปลงให้เป็น class ให้ทำการเรียก jep.jar มาด้วยนะครับ
สมมุติ คุณสร้างไฟล์ชื่อ t1.java และใส่โค้ดไว้ ให้ใช้คำสั่ง
javac -cp ที่ตั้งไพทอน\site-packages\jep\jep-เวชั่นjep.jar t1.javaแล้วจะได้ t1.class มา รันได้ด้วยคำสั่ง
java -cp .;ที่ตั้งไพทอน\site-packages\jep\jep-เวชั่นjep.jar t1
อ่านเอกสารเพิ่มเติมได้ที่ https://github.com/ninia/jep/wiki
ติดตามบทความต่อไปนะครับ
ขอบคุณครับ
เขียนโดย นาย วรรณพงษ์ ภัททิยไพบูลย์
นักศึกษาชั้นปีที่ 1
สาขาวิทยาการคอมพิวเตอร์และสารสนเทศ
คณะวิทยาศาสตร์ประยุกต์และวิศวกรรมศาสตร์
มหาวิทยาลัยขอนแก่น วิทยาเขตหนองคาย
ข่าวฝากประชาสัมพันธ์
มาเรียนสาขาวิทยาการคอมพิวเตอร์และสารสนเทศ คณะวิทยาศาสตร์ประยุกต์และวิศวกรรมศาสตร์ มหาวิทยาลัยขอนแก่น วิทยาเขตหนองคาย กันเยอะ ๆ นะครับ
โค้ดภาษาไพทอนรันข้ามแพลตฟอร์มได้ทั้งหมดจริงหรือไม่ ?
ตอบลบคำตอบคือ ไม่จริง โค้ดหลาย ๆ ส่วนของไพทอนถึงแม้จะรันข้ามแพลตฟอร์มได้ แต่มันก็ไม่ได้ช่วยให้ภาษาไพทอนเป็นภาษาไม่ยึดติดกับแพลตฟอร์ม เพราะโค้ดหลาย ๆ อย่างเมื่อข้ามแพลตฟอร์มต้องมีการปรับโค้ด เช่น โค้ดที่ใช้ไลบารี sys (path ไม่เหมือนกัน) , winsound เป็นต้น ต้องมีการปรับโค้ดเมื่อนำไปรันต่างแพลตฟอร์มหรือพิ่งพาโมดูลภายนอก ไม่ใช่ไลบารีที่มากับภาษาไพทอน ถ้าเทียบกับภาษาจาวา ภาษาจาวาจึงดีกว่าถ้าพูดเฉพาะในด้านการทำงานข้ามแพลตฟอร์มและในด้านประสิทธิภาพการทำงาน