Manufaktur industri
Industri Internet of Things | bahan industri | Pemeliharaan dan Perbaikan Peralatan | Pemrograman industri |
home  MfgRobots >> Manufaktur industri >  >> Manufacturing Technology >> Teknologi Industri

Mengoptimalkan Aplikasi Java 9 pada PLCnext Control Menggunakan Jlink

Dengan Java 9, alat baru yang disebut jlink diperkenalkan. Ini menggabungkan modul dan membangun image runtime all-in-one. Di satu sisi, seluruh 32 bit ARM JDK dapat dijalankan pada PLCnext Control. Namun dengan jlink dan modul memungkinkan untuk mengurangi sumber daya yang diperlukan untuk aplikasi Java Anda. Ini membuat bundel dengan hanya bagian yang diperlukan dari JDK yang dibutuhkan untuk aplikasi Anda.

Prasyarat

Binary OpenJDK untuk banyak platform dapat ditemukan misalnya di AdoptOpenJDK. Untuk tutorial ini, kami memilih Linux arm32 jdk-12.0.2+10 untuk controller dan pelengkapnya untuk sistem host Windows x64. Kami menggunakan lokasi JDK berikut:

C: ---Java | +---jdk-12.0.2 | ... | ---jdk-12-ARM-32bit ...

Buat application module

Dalam contoh ini kita hanya mencetak Hello World di console. Untuk menggunakan jlink kita harus menempatkan aplikasi kecil ini ke dalam module. Titik awal saya di terminal adalah folder bernama "HelloWorld" dan folder src dengan struktur berikut.

HelloWorld ---src ---de.plcnext.hello | module-info.java | ---de ---plcnext ---hello HelloWorld.java

Ini adalah contoh kode kecil kita dalam file HelloWorld.java:

package de.plcnext.hello; public class HelloWorld { public static void main(String[] args) { System.out.println("Hello PLCnext world!"); } }

Dan module-info.java diperlukan untuk membuat module:

module de.pxc.hello { }

Setelah membuat folder sumber kita mengkompilasi proyek kita. Untuk ini kita menggunakan perintah berikut di terminal.

C:Javajdk-12.0.2binjavac.exe -d .modulesde.plcnext.hello .srcde.plcnext.hellodeplcnexthelloHelloWorld.java .srcde.plcnext.hellomodule-info.java

Folder modules dan class Java dibuat:

HelloWorld ---modules ---de.plcnext.hello | module-info.class | ---de ---plcnext ---hello HelloWorld.class

Untuk menguji module kita pada sistem host, kita dapat menjalankannya dengan perintah berikut:

C:Javajdk-12.0.2binjava.exe --module-path .modules -m de.plcnext.hello/de.plcnext.hello.HelloWorld

Ini seharusnya menghasilkan Hello PLCnext world!.

Cara menggunakan jlink

Sekarang kita ingin memindahkan ini ke perangkat kita tanpa seluruh 300MB JDK. Untuk ini kita menggunakan jlink tanpa parameter tambahan di langkah pertama. Namun di awal kita membutuhkan informasi lebih lanjut, modul tambahan apa yang diperlukan. Ini kita akan ketahui dengan menganalisis module kita dengan jdeps.

C:Javajdk-12.0.2binjdeps.exe --module-path ".modules" --add-modules "de.plcnext.hello"

Ini memberitahu kami, kita membutuhkan java.base tambahan dari module kita. Sebagai module-path kita memilih jalur ke aplikasi kita dan jalur ke jmods dari JDK platform target kita. Dalam kasus ini C:Javajdk-12-ARM-32bitjmods.

Sekarang panggilan jlink kita terlihat seperti ini:

C:Javajdk-12.0.2binjlink.exe --module-path ".modules;C:Javajdk-12-ARM-32bitjmods" --add-modules "de.plcnext.hello,java.base" --output HelloWorldjre

Hasilnya adalah folder HelloWorldjre dengan hanya sekitar 45MB. Kita menyalin ini ke controller kita. Dalam kasus contoh ini ke /opt/plcnext/projects/java/. Kita perlu membuat file java di dalam folder binary HelloWorldjre dapat dieksekusi melalui chmod +x java dan memulai module kita

./java -m de.plcnext.hello/de.plcnext.hello.HelloWorld

Ini seharusnya menjalankan aplikasi dan menghasilkan output seperti sebelumnya Hello PLCnext world!. Dengan menggunakan beberapa parameter tambahan dari jlink Anda dapat mempersempak paketnya lebih jauh (dalam contoh ini hingga 28MB) dengan menggunakan --strip-debug, --no-header-files, --no-man-pages dan --compress=2. Di mana kompresi menghemat paling banyak tetapi dapat merugikan performa pada akhirnya.


Teknologi Industri

  1. Rangkaian Kontrol: Dasar, Aplikasi, dan Praktik Terbaik
  2. Menguasai Operator Java: Tipe, Sintaks, & Contoh Praktis
  3. Menguasai Antarmuka Java: Konsep, Implementasi, dan Praktik Terbaik
  4. Menguasai Java Try-with-Resources: Manajemen Sumber Daya Otomatis Dijelaskan
  5. Anotasi Java Dijelaskan: Jenis, Penempatan, dan Contoh Praktis
  6. Java 10: Meningkatkan Performa dengan Class-Data Sharing (CDS)
  7. 5 Manfaat Utama Kontrol Produksi Jarak Jauh untuk Industri Modern
  8. Mengoptimalkan Perangkat PLCnext Control dengan SNMP: Panduan Praktis
  9. Mengembangkan Aplikasi Konsol PLCnext Menggunakan C#: Panduan untuk Pemula
  10. Manajemen Klaster pada PLCnext: Memanfaatkan Kubernetes untuk Otomasi Industri