Daftar Isi:

Pengembangan Java yang Efisien untuk Raspberry Pi: 11 Langkah (dengan Gambar)
Pengembangan Java yang Efisien untuk Raspberry Pi: 11 Langkah (dengan Gambar)

Video: Pengembangan Java yang Efisien untuk Raspberry Pi: 11 Langkah (dengan Gambar)

Video: Pengembangan Java yang Efisien untuk Raspberry Pi: 11 Langkah (dengan Gambar)
Video: Rasbperry Pi Java and Apache 2024, November
Anonim

Instruksi ini menjelaskan pendekatan yang sangat efisien untuk mengembangkan program Java untuk Raspberry Pi. Saya telah menggunakan pendekatan untuk mengembangkan kemampuan Java mulai dari dukungan perangkat tingkat rendah hingga program multi-utas dan berbasis jaringan. Pendekatan ini tidak hanya efisien, tetapi juga gratis!

Pada dasarnya, pendekatannya adalah pengembangan jarak jauh menggunakan NetBeans. NetBeans berjalan pada workstation (komputer desktop atau laptop, bukan Raspberry Pi) yang terhubung melalui Wifi ke Raspberry Pi. Setelah semuanya diatur dengan benar, Anda dapat menulis program Java di NetBeans dan kemudian satu klik mengkompilasi dan membangun program di workstation, mengunduh program ke Pi, menjalankan program di Pi, dan mengirimkan output ke konsol NetBeans. Sihir! Anda bahkan dapat men-debug program yang sedang berjalan, menyetel breakpoint, dan memeriksa nilai variabel. Lebih banyak keajaiban!

Sisa dari pengantar ini menjelaskan motivasi untuk menggunakan Java dan untuk pengembangan jarak jauh menggunakan NetBeans. Jika Anda peduli tentang motivasi, baca terus. Jika Anda tidak peduli, lanjutkan ke langkah 1.

Mengapa menggunakan Java di Raspberry Pi?

Ada banyak bahasa pemrograman yang tersedia untuk Raspberry Pi, tetapi saya akan membatasi pembahasan pada bahasa pemrograman "kelas profesional" yang menargetkan program mandiri, mendukung multi-tugas, mengizinkan perangkat keras dan akses jaringan, dll. Itu berarti Java, Python, atau C/C++. Rilis terbaru Raspbian menyertakan dukungan pengembangan dan runtime untuk semua bahasa ini.

Python pada dasarnya "dipromosikan" untuk digunakan pada Pi, setidaknya sebagian untuk kemudahan belajar bagi programmer baru. Saya seorang programmer yang berpengalaman dan tidak menyukai Python karena ketidaksukaan subjektif yang diakui dari sejumlah karakteristiknya, misalnya, pengetikan dinamis. Ada satu karakteristik Python yang tidak saya sukai secara objektif -- kinerja. Sumber ini menunjukkan bahwa Java selalu lebih cepat daripada Python 3, dan bahkan dapat berjalan ratusan kali lebih cepat, tergantung pada tugasnya.

C menurut saya, adalah "bahasa mesin tingkat tinggi", yaitu, sesuatu yang sangat dekat dengan perangkat keras sistem, atau setidaknya sistem operasi. Anda dapat melakukan hampir semua hal, dan Anda dapat melakukannya secepat mungkin; pada kenyataannya, sumber ini menyarankan C dapat berjalan hingga 7X lebih cepat dari Java. Saya juga tidak menyukai C karena saya (secara subjektif) tidak menyukai beberapa karakteristiknya yang menurut saya misterius, kuno, atau keduanya; misalnya, pointer eksplisit. Secara obyektif, fakta bahwa Anda dapat melakukan apa saja berarti bahwa Anda hanyalah bug yang tidak jelas (misalnya, aritmatika penunjuk yang buruk atau memcpy yang salah) yang jauh dari menimpa memori dan berpotensi merusak program atau bahkan seluruh sistem. Java mencegah bahaya seperti itu, jadi Java lebih aman. Saya merasa keamanan juga meningkatkan produktivitas programmer. Saya menganggap C++ sebagai "pembungkus" berorientasi objek di sekitar C yang tidak melakukan apa pun untuk menghilangkan bahaya C.

Intinya: Java lebih cepat dari Python. Java lebih aman daripada C.

Apakah ada batasan saat menggunakan Java?

Sejauh ini, saya sudah bisa melakukan segala sesuatu di Java yang bisa saya lakukan dengan Python. Ada hal-hal yang dapat dilakukan seseorang di C yang tidak dapat dilakukan di Java, tetapi sekali lagi, sejauh ini semua yang ingin saya lakukan telah ditangani oleh penggemar Java di komunitas Pi. Saya akan menawarkan contoh di langkah selanjutnya. Yang mengatakan, saya telah membeli sensor dari vendor yang memasok "driver" untuk sensor hanya dengan Python (atau C/C++ untuk Arduino), jadi saya harus menulis padanan Java; upaya ekstra tidak selalu produktif, tetapi dapat menghasilkan wawasan yang lebih besar tentang operasi sensor.

Mengapa pengembangan jarak jauh berbasis NetBeans?

Saya telah menemukan bahwa pengembangan jarak jauh berbasis NetBeans sangat meningkatkan produktivitas saat menggunakan Java untuk Raspberry Pi. Saya yakin Anda dapat menggunakan pendekatan ini untuk membuat program yang cepat dan aman, karena karakteristik bawaan Java, saat menulis, membangun, dan men-debugnya jauh lebih cepat daripada pendekatan lain yang saya temukan, karena pengembangan jarak jauh menggunakan "profesional grade" NetBeans Integrated Development Environment (IDE).

Mungkin berguna untuk membahas secara singkat "pendekatan-pendekatan lain" itu. Semua memenuhi kriteria dasar bahwa Raspberry Pi tidak memiliki keyboard, mouse, atau layar yang terhubung. Ada banyak alasan untuk kriteria ini, tetapi alasan utama saya adalah karena saya mengembangkan robot seluler, dan saya tidak ingin Pi terhubung ke periferal apa pun kecuali subsistem robot, bahkan selama pengembangan.

Server VNC yang termasuk dalam Raspbian menyediakan antarmuka pengguna grafis jarak jauh (GUI) yang memungkinkan bentuk pengembangan jarak jauh, di mana hanya GUI jarak jauh yang berjalan di workstation dan yang lainnya, penulisan, kompilasi, dan pembangunan, terjadi di Pi. Dengan VNC, mudah untuk menggunakan alat pengembangan berkemampuan Java yang dikirimkan dalam Raspbian, seperti BlueJ, Geany, dan Greenfoot. Beberapa di antaranya dapat dianggap sebagai IDE; Namun, saya menemukan mereka jauh dari kelas profesional.

Secara teknis dimungkinkan untuk menginstal IDE Java kelas profesional seperti Eclipse atau NetBeans pada Raspberry Pi dan menggunakannya dari jarak jauh melalui VNC. Laporan, dan akal sehat, menunjukkan bahwa hasilnya akan mengecewakan, karena jejak memori yang besar dan daya CPU yang dibutuhkan IDE tersebut, serta latensi jaringan yang diperkenalkan oleh GUI jarak jauh.

Baik Eclipse dan NetBeans berjalan sangat baik di workstation. Dengan Eclipse, menulis kode adalah pengalaman yang menyenangkan, namun membangun program tidak; mengunduh program harus dilakukan di luar Eclipse; mengeksekusi program pada Pi sepenuhnya independen dari Eclipse. Hasil keseluruhan adalah proses multi-langkah, hampir menyakitkan, yang tidak dapat mendukung debugging jarak jauh. NetBeans memiliki built-in compile, build, download, remote execution, dan remote debug, menjadikannya pendekatan yang unggul.

Langkah 1: Siapkan Raspberry Pi

Untuk menggunakan pendekatan pengembangan jarak jauh, Anda harus memulai dengan menyiapkan target Raspberry Pi. Ada banyak sumber daya, termasuk Instructables, yang tersedia untuk membantu menyiapkan Raspberry Pi. Lihat ini untuk dasar-dasar pengaturan Pi (dan banyak lagi).

Instruksi ini mengasumsikan Anda

  • instal Raspbian terbaru; pastikan Anda mencatat ID pengguna dan kata sandi Pi
  • atur Wifi dan sambungkan ke router Anda (lihat ini); pastikan Anda mencatat alamat IP Pi
  • aktifkan SSH (lihat ini) untuk mengizinkan akses jarak jauh ke Pi dari workstation

Setelah Anda menyelesaikan pengaturan, Anda dapat mematikan dan memutuskan sambungan layar, keyboard, dan mouse dari Pi. Ini adalah salah satu keuntungan utama untuk pembangunan jarak jauh. Anda harus membiarkan dongle Wifi tetap terhubung (tidak diperlukan, tentu saja, untuk model Pi 3 atau Pi Zero W), dan kemudian Anda dapat menyalakan Pi.

Untuk menguji, buka klien ssh di workstation Anda, misalnya Terminal di MacOS atau Putty di Windows. Kemudian masukkan perintah ssh (secure shell) dengan form berikut:

ssh the_pi_ip_address -l the_pi_user_id

Anda harus mendapatkan prompt untuk memasukkan kata sandi ID pengguna Pi Anda. Jika tidak ada prompt yang muncul, periksa untuk memastikan Anda telah memasukkan alamat IP yang benar di perintah ssh. Masukkan kata sandi Anda (ini akan disembunyikan) dan Anda akan melihat prompt shell Pi yang muncul seperti ini:

pi@raspberrypi:~ $

Jika Anda tidak melihat perintah, periksa ID pengguna dan kata sandi yang Anda gunakan.

Sekarang Anda harus menemukan jalur ke runtime Java dan mengonfirmasi bahwa versi default adalah Java 8 (harus benar untuk Raspbian terbaru). Untuk menemukan jalur runtime Java, di klien ssh masukkan perintah

sudo update-alternatives --display java

Anda akan melihat respons dengan dua baris pertama yang terlihat seperti berikut:

java - mode otomatis

tautan versi terbaik adalah /usr/lib/jvm/jdk-8-Oracle-arm32-vfp-hflt/jre/bin/Java

"-8-" di baris kedua mengonfirmasi bahwa runtime default adalah Java 8. Catat jalur di baris kedua karena Anda akan memerlukannya untuk mengonfigurasi NetBeans untuk pengembangan jarak jauh di langkah selanjutnya.

Jika runtime default bukan Java 8, di klien ssh masukkan perintah berikut untuk beralih ke Java 8 (dengan asumsi sudah diinstal)

sudo update-alternatives --config java

Langkah 2: Instal NetBeans di Workstation

Sekarang Anda perlu menginstal NetBeans di workstation Anda. Arahkan browser workstation Anda ke halaman unduh NetBeans. Anda akan melihat beberapa kemungkinan bundel yang mendukung dua edisi Java serta bahasa lainnya. Yang Anda butuhkan untuk pengembangan Java untuk Raspberry Pi adalah Java SE, tetapi Anda bisa mendapatkan bundel Java EE atau bundel Semua. Setelah Anda memutuskan bundel mana yang Anda inginkan, klik tombol Unduh yang sesuai. Anda dapat menemukan petunjuk instalasi tambahan untuk OS workstation Anda di sini.

Setelah Anda menginstal NetBeans, mulai (mungkin melakukannya secara otomatis setelah instalasi). Anda akan melihat jendela utama NetBeans seperti yang ditunjukkan pada gambar. Gambar diambil di Mac, dan jendela utama mungkin terlihat sedikit berbeda di Windows.

Setelah Anda berhasil menginstal dan menjalankan NetBeans, lanjutkan ke langkah berikutnya.

Langkah 3: Konfigurasikan Raspberry Pi Sebagai Platform Jarak Jauh di NetBeans

Konfigurasikan Raspberry Pi Sebagai Platform Jarak Jauh di NetBeans
Konfigurasikan Raspberry Pi Sebagai Platform Jarak Jauh di NetBeans

Tindakan berikut mengonfigurasi Raspberry Pi sebagai platform Java SE jarak jauh untuk NetBeans. Ini memungkinkan NetBeans untuk mengunduh dan menjalankan program Java di Pi. Anda dapat menemukan deskripsi yang agak umum di sini.

CATATAN: Dalam langkah ini dan langkah berikutnya, saya menunjukkan nilai khusus untuk lingkungan saya untuk berbagai aspek konfigurasi dan pengkodean; Anda jelas akan berbeda.

Untuk mengkonfigurasi Pi sebagai platform jarak jauh:

  1. Di bilah menu utama NetBeans, pilih Alat -> Platform Java. Anda akan melihat jendela popup Java Platform Manager (gambar satu).
  2. Klik Tambah Platform di kiri bawah. Anda akan melihat popup Add Java Platform [platform type] (gambar dua).
  3. Pilih Edisi Standar Java Jarak Jauh. Klik Berikutnya. Anda akan melihat popup Add Java Platform [set up remote platform] (gambar tiga menunjukkan popup setelah saya memasukkan nilai yang sesuai untuk lingkungan saya di kolom).
  4. Di bidang Nama Platform, masukkan nama untuk Pi. Anda dapat menggunakan hampir semua hal, tetapi harus unik.
  5. Di bidang Host masukkan alamat IP untuk Pi yang ditemukan di langkah 1.
  6. Di bidang Nama pengguna masukkan nama pengguna yang Anda gunakan pada langkah 1.
  7. Biarkan Gunakan Otentikasi Kata Sandi dipilih dan di bidang Kata Sandi masukkan kata sandi yang Anda buat di langkah 1.
  8. Di bidang Jalur JRE Jarak Jauh Anda harus memasukkan sebagian besar jalur ke runtime Java di Pi. Pada langkah 1, itu adalah /usr/lib/jvm/jdk-8-Oracle-arm32-vfp-hflt/jre/bin/Java. Namun Anda harus meletakkan /bin/Java di nilai bidang.
  9. NetBeans mengunduh program yang dapat dijalankan ke direktori kerja di Pi, yang diidentifikasi di bidang Dir Kerja. Standarnya adalah /the_Pi_user_ID/NetBeansProjects/ dan itu bisa diterima. Anda dapat menggunakan sesuatu yang berbeda jika diinginkan, meskipun harus tersedia untuk_Pi_user_ID (gambar tiga).
  10. Klik Selesai di kanan bawah popup. Setelah diproses, Anda akan sekali lagi melihat jendela popup Java Platform Manager. Sekarang Anda akan melihat Pi jarak jauh Anda (di bawah nama yang Anda gunakan dalam tindakan 4 di atas) di bawah kategori Remote Java SE (gambar empat).
  11. Klik Test Platform di kiri bawah untuk menguji koneksi antara NetBeans dan Pi Anda. Pertama-tama Anda akan melihat popup yang mengatakan Verifying Remote Platform. Jika berhasil, Anda akan mendapatkan popup kedua yang menunjukkan bahwa Koneksi … berhasil dibuat. Jika tidak, Anda perlu memeriksa dan memperbaiki informasi yang Anda masukkan ke popup Add Java Platform [set up remote platform] dalam tindakan 5-9 di atas. Anda dapat melakukannya dari popup Java Platform Manager; cukup pilih platform Pi Anda dan kemudian edit bidang di sisi kanan popup.
  12. Setelah koneksi berhasil, klik Tutup di popup Java Platform Manager. Anda sekarang akan melihat jendela utama NetBeans.

Sekarang kesenangan yang sebenarnya bisa dimulai!

Langkah 4: Buat Proyek Java di Workstation

Ini tidak dimaksudkan sebagai penjelasan lengkap tentang cara menggunakan NetBeans, atau Java, tetapi saya akan menjelaskan tindakan minimal untuk menulis program di NetBeans di workstation dan, akhirnya, menjalankan program dari jarak jauh di Raspberry Pi.

Di NetBeans Anda harus terlebih dahulu membuat proyek untuk menampung kelas Java untuk program tersebut. Selanjutnya, di Jawa, kelas berada dalam paket untuk mendukung organisasi dan keamanan. Untuk membuat proyek dan secara opsional membuat paket dan file kelas:

  1. Di jendela utama NetBeans, klik ikon proyek baru (ke-2 dari kiri). Anda akan melihat popup Proyek Baru [pilih proyek] (gambar satu).
  2. Default (Kategori: Java, Proyek: Aplikasi Java) sudah benar untuk contoh ini, jadi cukup klik Berikutnya. Anda akan melihat popup Aplikasi Java Baru [nama dan lokasi] (gambar dua menunjukkan nilai untuk contoh saya). CATATAN: Saya telah menyunting informasi pengguna saya menggunakan persegi panjang berwarna.
  3. Di bidang Nama Proyek, masukkan nama proyek Java yang valid yang Anda pilih. Nama harus dimulai dengan huruf kapital, dan konvensi menyarankan kasus unta saat menggabungkan kata-kata.
  4. Bidang Lokasi Proyek mengontrol tempat proyek berada di sistem file Anda. Standarnya bervariasi tergantung pada sistem operasi, tetapi aman untuk diterima.
  5. Bidang Folder Proyek memungkinkan Anda untuk mengontrol nama folder untuk proyek. Saya merasa lebih baik menggunakan default, yang merupakan gabungan dari bidang Lokasi dan bidang Nama.
  6. Ketika kotak centang Buat Kelas Utama dicentang, NetBeans secara otomatis membuat paket dan file kelas utama (program yang dapat dijalankan dari baris perintah) dengan nama yang sama dengan proyek. Saya pikir biasanya itu harus dicentang, tetapi dalam kasus ini, saya akan membiarkannya dicentang yang menghilangkan tindakan eksplisit jika tidak diperlukan untuk melakukannya (gambar dua).
  7. Klik Selesai untuk membuat proyek, paket, dan file kelas utama. Sekarang panel kiri atas jendela utama NetBeans menunjukkan proyek Anda, yang berisi satu paket, yang pada gilirannya berisi file kelas tunggal dengan metode main(). Panel kanan atas berisi kode sumber default untuk kelas utama (program) yang dibuat secara otomatis oleh NetBeans (gambar tiga).

Pada titik ini, Anda dapat menulis beberapa kode dalam metode utama dan menjalankannya di workstation. Itu mungkin diinginkan kadang-kadang, tetapi tidak diperlukan untuk Instructable ini, jadi lanjutkan ke langkah berikutnya.

Langkah 5: Konfigurasikan Proyek NetBeans untuk Dijalankan dari Jarak Jauh di Raspberry Pi

Untuk mengonfigurasi proyek NetBeans, dan program di dalamnya, untuk dijalankan dari jarak jauh di Raspberry Pi, lakukan hal berikut:

  1. Klik kanan atau 2 jari (tergantung pada OS workstation) pada proyek di panel Proyek dari jendela utama NetBeans untuk membuka menu proyek dan klik Properti. Anda akan melihat popup Project Properties (gambar menunjukkan popup dengan nilai yang sesuai untuk contoh saya).
  2. Di bawah Kategori di sebelah kiri, pilih Jalankan.
  3. Klik Baru di sebelah kanan bidang Konfigurasi. Dalam popup Buat Konfigurasi Baru yang dihasilkan, masukkan nama untuk konfigurasi dan klik OK. Nama bisa apa saja; Saya baru saja menggunakan kembali nama platform ("My Pi"). Sekali lagi Anda akan melihat popup Project Properties.
  4. Klik ikon dropdown di sebelah kanan bidang Runtime Platform. Dari daftar di popup, pilih platform jarak jauh yang Anda buat sebelumnya (di lingkungan saya, "My Pi").
  5. Klik OK untuk menyiapkan platform jarak jauh untuk proyek. Anda akan sekali lagi melihat jendela utama.

Anda sekarang siap untuk menulis kode dan menjalankan program dari jarak jauh.

Langkah 6: Tulis Program Java di Workstation dan Jalankan di Raspberry Pi

Panel kanan di jendela utama NetBeans menunjukkan file kelas utama yang dihasilkan oleh NetBeans. Ketik pernyataan cetak sederhana dalam metode utama file kelas (gambar satu). Sekarang program Java lengkap yang melakukan sesuatu, meskipun sesuatu yang sangat sederhana.

Untuk menjalankan program di Pi, klik ikon Run (panah hijau yang mengarah ke kiri) di jendela utama. NetBeans mengkompilasi kode, membuat file jar, mendownload file jar ke Raspberry Pi yang diidentifikasi oleh platform jarak jauh, mengeksekusi program pada Pi, menangkap output (System.out) dari program, dan menggemakan output tersebut ke NetBeans Panel output di kanan bawah jendela utama (gambar dua).

Anda sekarang telah secara signifikan memperluas keahlian Anda untuk mengembangkan proyek di Raspberry Pi! Tapi tunggu…. Masih ada lagi!

Langkah 7: Debug Program Java Dengan NetBeans

Salah satu fitur yang paling kuat dari kekuatan industri Lingkungan Pengembangan Terpadu seperti NetBeans adalah kemampuan untuk men-debug program saat berjalan. NetBeans memungkinkan Anda untuk memanfaatkan rangkaian lengkap alat debugging saat menjalankan dari jarak jauh. Ini termasuk menyetel breakpoint di lokasi "penting" atau "merepotkan" dalam program dan memeriksa nilai variabel pada status eksekusi saat ini.

Program sederhana pada langkah terakhir terlalu sederhana untuk mendemonstrasikan debugging, jadi saya menambahkan beberapa kode tambahan ke program. Kode tambahan menambahkan dua variabel.

Untuk memanfaatkan alat debug, Anda harus terlebih dahulu menetapkan satu atau beberapa titik henti sementara. Untuk menyetel breakpoint, klik nomor baris tempat Anda ingin menangguhkan eksekusi; ikon persegi panjang merah muncul, dan seluruh garis memperoleh latar belakang merah (gambar satu).

Untuk men-debug program yang berjalan di Pi, klik ikon Debug (tepat di sebelah kanan ikon Run) di jendela utama NetBeans. Seperti eksekusi normal, NetBeans mengkompilasi, membangun, mengunduh, mengeksekusi, menangkap output, dan menggemakan output itu. Tetapi dengan debugging, NetBeans menghentikan eksekusi di breakpoint dan memungkinkan Anda untuk memeriksa status eksekusi (gambar dua, menunjukkan panel Variabel di kanan bawah).

Eksekusi berhenti di breakpoint sebelum mengeksekusi instruksi pada baris dengan breakpoint. Latar belakang hijau menunjukkan pernyataan berikutnya yang akan dieksekusi. Jadi dalam contoh saya, dengan breakpoint pada baris 9, variabel a belum ada, apalagi memiliki nilai.

Sekarang arahkan kursor ke ikon menu debug di jendela utama (ikon panah ganda pertama di sebelah kanan ikon Debug) dan klik ikon Step Over (ia memiliki dokumen biru di latar belakang dan panah hijau berlawanan arah jarum jam di latar depan). [CATATAN: jika Anda membuat jendela utama NetBeans Anda cukup lebar, menu debug akan meluas dan ikon aksi debug muncul di sebelah kanan ikon Debug.] NetBeans mengeksekusi pernyataan pada breakpoint dan menghentikan eksekusi sebelum pernyataan berikutnya. Sekarang Anda akan melihat bahwa variabel a ada dan memiliki nilai yang diharapkan (gambar tiga).

Klik ikon Step Over dua kali. Anda akan melihat bahwa ketiga variabel memiliki nilai; perhatikan bahwa c masih nol (gambar empat).

Klik ikon Step Over sekali. Anda akan melihat bahwa variabel c sekarang memiliki nilai yang tepat, yaitu jumlah variabel a dan b (gambar lima).

Terakhir, di menu debug, klik ikon Run (lingkaran hijau dengan panah putih). Itu menyebabkan eksekusi berlanjut ke breakpoint berikutnya, atau ke akhir program, mana saja yang lebih dulu. Sekarang panel Output muncul dan menunjukkan output yang sama dengan eksekusi normal, dalam hal ini teks dalam pernyataan cetak.

Langkah 8: Jalankan Program Independen NetBeans

Saatnya mungkin tiba ketika Anda ingin menjalankan program Anda di Raspberry Pi, tanpa "bantuan" atau "gangguan" dari NetBeans. Hal ini sangat sederhana. Pertama, buka klien ssh ke Pi Anda.

Ingat dari langkah 3 bahwa NetBeans menempatkan toples proyek Anda di direktori kerja di Pi. Basis default adalah /home/pi/NetBeansProjects untuk pengguna pi. Direktori spesifik memiliki nama yang sama dengan proyek Anda. NetBeans menempatkan toples di subdirektori yang disebut dist. Sebagai contoh saya, path lengkapnya adalah /home/pi/NetBeansProjects/MyRemoteProg/dist. Di klien ssh di Pi, untuk menjalankan program Anda dapat menggunakan perintah java dengan opsi 'jar':

java -jar /home/pi/NetBeansProjects/MyRemoteProg/dist/MyRemoteProg.jar

Anda akan melihat hasil eksekusi di ssh client; dalam contoh saya, hasilnya adalah

Halo dari Raspberry Pi!

Ini berfungsi karena informasi dalam file jar mengidentifikasi kelas utama mana dalam toples yang akan dieksekusi.

Anda juga dapat mengubah direktori kerja (melalui cd) ke lokasi file jar dan kemudian mengeluarkan perintah yang lebih pendek untuk menghasilkan hasil yang sama.

java -jar MyRemoteProg.jar

Langkah 9: Bangun dan Unduh, Tapi Jangan Jalankan Program Melalui NetBeans

Ada situasi di mana Anda ingin NetBeans membangun dan mengunduh program Anda, tetapi tidak menjalankannya. Salah satu situasi seperti itu terjadi ketika program Anda membutuhkan input keyboard. Jika ini masalahnya, menggunakan teknik pada langkah sebelumnya, setelah Anda membangun dan mengunduh, program akan dijalankan pada Raspberry Pi dan dengan demikian mengharapkan input keyboard dari Pi, tetapi tentu saja, tidak ada keyboard yang terpasang ke Pi, jadi programnya hang -- tidak bagus.

Anda harus menggunakan teknik yang agak berbeda untuk menjalankan program. Pada dasarnya, Anda membuat file kelas utama "dummy" yang pada dasarnya tidak melakukan apa-apa, dan mengidentifikasinya sebagai program yang akan dieksekusi setelah diunduh. Dalam hal ini, "dummy" akan dieksekusi, dan Anda kemudian dapat menjalankan program "asli" Anda langsung di Pi.

Untuk menggunakan teknik ini, pertama buat kelas utama baru:

  1. Buka menu proyek seperti pada langkah 5 dan klik New->Java Main Class. Anda akan melihat popup Kelas Utama Java Baru.
  2. Di bidang Nama Kelas masukkan nama. Nama bisa apa saja yang Anda suka; Saya menggunakan "Bodoh". Bidang Paket memungkinkan Anda untuk mengidentifikasi paket kelas; Anda memilih paket menggunakan dropdown di sebelah kanan bidang. Kelas dapat berada dalam paket yang sama dengan program "asli" Anda atau dalam paket yang berbeda; Saya menempatkan kelas baru dalam paket yang sama. Klik Selesai. Anda sekarang akan melihat jendela utama NetBeans dengan file baru di panel kanan atas (gambar satu). Saya menambahkan pernyataan cetak sederhana tentang menjalankan Pi, tetapi tidak ada yang benar-benar diperlukan.

Untuk menjalankan "Dummy" setelah mengunduh, Anda harus menjadikannya "kelas utama untuk dieksekusi secara default" untuk proyek:

  1. Buka Project Properties seperti pada langkah 5. Pilih kategori Run. Klik Telusuri di sebelah kanan bidang Kelas Utama. Anda akan melihat popup Browse Main Classes (gambar dua).
  2. Pilih kelas "Dummy". Klik Pilih Kelas Utama. Anda akan sekali lagi melihat Project Properties.
  3. Klik Oke. Anda akan kembali ke jendela utama.

Sekarang ketika Anda mengklik ikon Jalankan, NetBeans memenuhi/membangun seluruh proyek, mengunduh toples yang berisi semua file kelas ke Pi, dan mengeksekusi kelas "Dummy" (gambar tiga).

Untuk mengeksekusi program Anda yang sebenarnya di Pi, Anda sekarang harus menggunakan perintah java dengan opsi 'classpath', yang mengharuskan Anda secara eksplisit mengidentifikasi kelas utama yang akan dieksekusi. Dari klien ssh, buka direktori dist untuk proyek Anda. Perintah yang tepat adalah dalam bentuk:

java -cp project_name.jar package_name.class_name

Project_name jelas mengacu pada proyek; yang berubah hanya ketika berhadapan dengan proyek baru. Package_name tentu saja mengacu pada paket, dan class_name mengacu pada kelas utama yang akan dieksekusi. Seperti yang dikatakan sebelumnya, sebuah proyek dapat berisi banyak paket. Demikian pula, sebuah paket dapat berisi banyak kelas, dan semuanya dapat berupa kelas utama, atau program, yang dapat dieksekusi dari baris perintah. Dengan demikian, teknik 'classpath' cukup berguna untuk mengembangkan program yang canggih dengan banyak kelas, beberapa di antaranya adalah kelas utama hanya untuk membantu pengujian unit.

Perintah berikut menjalankan program contoh saya:

java -cp MyRemoteProg.jar myremoteprog. MyRemoteProg

Langkah 10: Manfaatkan Manajemen Perpustakaan NetBeans

Salah satu aspek terberat tetapi paling penting dari program canggih adalah berurusan dengan perpustakaan, yaitu, kode yang telah ditulis orang lain. NetBeans melakukan pekerjaan yang mengagumkan untuk menghilangkan sebagian besar kesulitan manajemen perpustakaan.

Saya akan menggunakan Pi4J sebagai contoh, yang memberikan program Java akses ke Raspberry Pi GPIO, bus I2C, dan I/O perangkat keras lainnya. Pi4J hanyalah salah satu contoh dukungan untuk melakukan banyak hal menyenangkan di Pi dengan Java.

Anda harus terlebih dahulu mengunduh perpustakaan ke workstation Anda. Lihat halaman unduhan Pi4J. Karena Anda tidak menginstal Pi4J pada Pi, unduh zip ke workstation Anda. Anda mungkin atau mungkin tidak harus secara eksplisit membuka zip setelah zip diunduh.

Sekarang Anda harus membuat "perpustakaan global" di NetBeans:

  1. Di menu utama NetBeans, klik Alat -> Perpustakaan. Anda akan melihat popup Ant Library Manager (gambar satu).
  2. Klik Perpustakaan Baru di kiri bawah. Anda akan melihat popup Perpustakaan Baru (gambar dua).
  3. Ketik nama bermakna yang ingin Anda gunakan dan klik OK. Anda akan sekali lagi melihat popup Ant Library Manager. Sekarang menunjukkan perpustakaan baru yang Anda buat (gambar tiga).
  4. Klik Tambahkan JAR/Folder di sebelah kanan. Anda akan melihat popup Browse JAR/Folder (gambar empat).
  5. Arahkan ke dan kemudian pilih pi4j-core.jar. Kemudian klik Tambahkan JAR/Folder. Anda akan kembali ke popup Ant Library Manager.
  6. Di popup Ant Library Manager, klik OK. Anda akan kembali ke jendela utama NetBeans.

Anda telah menambahkan perpustakaan sehingga dapat digunakan dalam proyek apa pun. Sekarang Anda harus menambahkan perpustakaan ke proyek Anda:

  1. Buka popup Project Properties (lihat langkah 5) dan pilih kategori Libraries (gambar lima).
  2. Klik Tambahkan Perpustakaan di sisi kanan popup. Anda akan melihat popup Add Library (gambar enam).
  3. Arahkan ke perpustakaan dan pilih. Kemudian klik Tambah Perpustakaan. Anda akan melihat lagi popup Project Properties. Pustaka sekarang muncul di daftar Pustaka waktu kompilasi di sembulan.
  4. Di popup Properti Proyek, klik OK. Anda akan kembali ke jendela utama.

Anda telah menambahkan perpustakaan ke proyek Anda sehingga program Anda dapat menggunakannya. Anda dapat melakukan urutan tindakan yang sama untuk pustaka apa pun yang Anda perlukan untuk sebuah program.

Ada tiga kali Anda membutuhkan perpustakaan -- kompilasi, build, dan eksekusi. Untungnya, dengan NetBeans, menambahkan perpustakaan seperti yang ditunjukkan di atas menangani semua. Untuk mengkonfirmasi ini, saya telah membuat kelas utama lain yang melakukan minimum absolut yang diperlukan untuk menggunakan kemampuan I2C di Pi4J (gambar tujuh). Fakta bahwa tidak ada kesalahan yang ditampilkan berarti bahwa kelas TestPi4J dikompilasi. Mengklik Jalankan berhasil membangun dan mengunduh; NetBeans mengunduh pustaka selain file jar, sehingga program akan dijalankan. Untuk memverifikasi yang terakhir, Anda dapat menggunakan teknik di langkah 9 dan di klien ssh masukkan perintah berikut (dari direktori dist):

java -cp MyRemoteProg.jar myremoteprog. TestPi4J

Adalah instruktif untuk memahami bagaimana NetBeans menangani perpustakaan. Saat berada di direktori dist untuk proyek Anda, buat daftar isi direktori (gunakan perintah ls) dan Anda akan melihat subdirektori lib. Daftar isi direktori itu dan Anda akan melihat file jar diidentifikasi di perpustakaan global, yang dalam contoh saya adalah pi4j-core.jar. Semua perpustakaan yang Anda tambahkan ke proyek akan muncul di direktori lib, dan dengan demikian tersedia untuk semua program dalam file jar proyek.

Langkah 11: Ayo Bersenang-senang

Saya telah menjelaskan pendekatan untuk mencapai pengembangan Java yang sangat efisien untuk Raspberry Pi. Raspberry Pi adalah teknologi yang sangat populer untuk spektrum proyek yang luas. Java adalah bahasa pemrograman kelas profesional yang menawarkan keunggulan kinerja dibandingkan Python dan menawarkan keunggulan keamanan dibandingkan C/C++. NetBeans adalah IDE kelas profesional yang sangat meningkatkan produktivitas programmer.

Saya pikir kombinasi ini cukup menarik. Sekarang, bersenang-senanglah menggunakan kombinasi untuk proyek Anda.

Direkomendasikan: