Isi kandungan:

Pembangunan Java yang cekap untuk Raspberry Pi: 11 Langkah (dengan Gambar)
Pembangunan Java yang cekap untuk Raspberry Pi: 11 Langkah (dengan Gambar)

Video: Pembangunan Java yang cekap untuk Raspberry Pi: 11 Langkah (dengan Gambar)

Video: Pembangunan Java yang cekap untuk Raspberry Pi: 11 Langkah (dengan Gambar)
Video: SULTAN MEDAN INDRAKENZ NAIK JET PRIBADI KE PULAU PRIBADI!! 2024, Julai
Anonim

Instructable ini menerangkan pendekatan yang sangat efisien untuk mengembangkan program Java untuk Raspberry Pi. Saya telah menggunakan pendekatan untuk mengembangkan kemampuan Java mulai dari sokongan peranti tahap rendah hingga program berasaskan rangkaian dan pelbagai rangkaian. Pendekatannya bukan sahaja cekap, tetapi percuma!

Pada dasarnya, pendekatannya adalah pengembangan jarak jauh menggunakan NetBeans. NetBeans berjalan di stesen kerja (desktop atau komputer riba, bukan Raspberry Pi) yang disambungkan melalui Wifi ke Raspberry Pi. Setelah semuanya disiapkan dengan betul, anda boleh menulis program Java di NetBeans dan kemudian satu klik menyusun dan membina program di stesen kerja, memuat turun program ke Pi, menjalankan program di Pi, dan menyampaikan output ke konsol NetBeans. Sihir! Anda bahkan boleh menyahpepijat program yang sedang berjalan, menetapkan titik putus dan memeriksa nilai berubah. Lebih banyak sihir!

Selebihnya pengenalan ini menerangkan motivasi untuk menggunakan Java dan untuk pengembangan jarak jauh menggunakan NetBeans. Sekiranya anda mementingkan motivasi, baca terus. Sekiranya anda tidak peduli, pergi ke langkah 1.

Mengapa menggunakan Java pada Raspberry Pi?

Terdapat banyak bahasa pengaturcaraan yang tersedia untuk Raspberry Pi, tetapi saya akan mengehadkan perbincangan kepada bahasa pengaturcaraan "profesional" yang menyasarkan program mandiri, menyokong pelbagai tugas, membenarkan akses perkakasan dan rangkaian, dll. Itu bermaksud Java, Python, atau C / C ++. Siaran Raspbian yang terbaru merangkumi sokongan pembangunan dan jangka masa untuk semua bahasa ini.

Python sebenarnya "dipromosikan" untuk digunakan pada Pi, paling tidak untuk kemudahan pembelajarannya untuk pengaturcara baru. Saya seorang pengaturcara yang berpengalaman dan tidak menyukai Python kerana ketidaksukaan yang diakui subjektif terhadap beberapa ciri, misalnya, menaip dinamik. Terdapat satu ciri Python yang mana ketidaksukaan saya adalah objektif - prestasi. Sumber ini menunjukkan bahawa Java selalu lebih cepat daripada Python 3, dan sebenarnya dapat berjalan beratus-ratus kali lebih cepat, bergantung pada tugasnya.

C pada pendapat saya, adalah "bahasa mesin tahap tinggi", iaitu sesuatu yang sangat dekat dengan perkakasan sistem, atau sekurang-kurangnya sistem operasi. Anda boleh melakukan apa sahaja, dan anda boleh melakukannya secepat mungkin; sebenarnya, sumber ini menunjukkan C dapat berjalan hingga 7X secepat Java. Saya juga tidak gemar C kerana saya (secara subjektif) tidak menyukai beberapa ciri yang saya dapati misteri, kuno, atau kedua-duanya; sebagai contoh, penunjuk eksplisit. Secara objektif, hakikat bahawa anda boleh melakukan apa-apa bermakna anda hanya bug yang tidak jelas (mis., Aritmetik penunjuk buruk atau memcpy yang salah) menjauhkan dari memori yang menimpa dan berpotensi merosakkan program atau bahkan seluruh sistem. Java mencegah bahaya tersebut, jadi Java lebih selamat. Saya merasakan keselamatan juga meningkatkan produktiviti pengaturcara. Saya menganggap C ++ sebagai "pembungkus" berorientasikan objek di sekitar C yang tidak melakukan apa-apa untuk menghilangkan bahaya C.

Intinya: Java lebih pantas daripada Python. Java lebih selamat daripada C.

Adakah terdapat batasan ketika menggunakan Java?

Setakat ini, saya dapat melakukan semua perkara di Jawa yang dapat saya lakukan di Python. Ada beberapa hal yang dapat dilakukan di C yang tidak dapat dilakukan di Java, tetapi sekali lagi, sejauh ini semua yang saya ingin lakukan telah ditangani oleh peminat Java di komuniti Pi. Saya akan memberikan contoh pada langkah seterusnya. Yang mengatakan, saya telah membeli sensor dari vendor yang membekalkan "pemacu" untuk sensor hanya di Python (atau C / C ++ untuk Arduino), jadi saya harus menulis setara Java; usaha tambahan tidak semestinya produktif, tetapi dapat menghasilkan wawasan yang lebih besar mengenai operasi sensor.

Mengapa pembangunan jarak jauh berdasarkan NetBeans?

Saya dapati bahawa pembangunan jarak jauh berasaskan NetBeans meningkatkan produktiviti ketika menggunakan Java untuk Raspberry Pi. Saya yakin bahawa anda boleh menggunakan pendekatan untuk membuat program yang cepat dan selamat, kerana ciri-ciri Java yang ada, semasa menulis, membina dan menyahpepijatnya lebih cepat daripada pendekatan lain yang saya temukan, kerana pengembangan jarak jauh menggunakan "profesional" gred "NetBeans Integrated Development Environment (IDE).

Mungkin berguna untuk membincangkan secara ringkas "pendekatan lain" itu. Semua memenuhi kriteria asas bahawa Raspberry Pi tidak mempunyai papan kekunci, tetikus, atau paparan yang bersambung. Terdapat banyak sebab untuk kriteria ini, tetapi alasan utama saya ialah saya mengembangkan robot bergerak, dan saya tidak mahu Pi disambungkan ke periferal kecuali subsistem robot, walaupun semasa pembangunan.

Pelayan VNC yang termasuk dalam Raspbian menyediakan antara muka pengguna grafik jarak jauh (GUI) yang memungkinkan bentuk pembangunan jarak jauh, di mana hanya GUI jarak jauh yang berjalan di stesen kerja dan segala yang lain, menulis, menyusun dan membina, berlaku di Pi. Dengan VNC, mudah untuk menggunakan alat pengembangan berkemampuan Java yang dikirimkan di Raspbian, seperti BlueJ, Geany, dan Greenfoot. Sebahagian daripada ini boleh dianggap sebagai IDE; namun, saya dapati mereka jauh dari tahap profesional.

Secara teknikal adalah mungkin untuk memasang Java IDE kelas profesional seperti Eclipse atau NetBeans pada Raspberry Pi dan menggunakannya dari jauh melalui VNC. Laporan, dan akal sehat, menunjukkan bahawa hasilnya akan mengecewakan, kerana jejak memori yang besar dan kekuatan CPU yang diperlukan IDE seperti itu, serta latensi jaringan yang diperkenalkan oleh GUI jarak jauh.

Eclipse dan NetBeans berjalan dengan baik di stesen kerja. Dengan Eclipse, menulis kod adalah pengalaman yang menyenangkan, namun, membina program tidak; memuat turun program mesti dilakukan di luar Eclipse; melaksanakan program pada Pi sepenuhnya bebas dari Eclipse. Hasil keseluruhan adalah proses multi-langkah, hampir menyakitkan yang tidak dapat menyokong penyahpepijatan jauh. NetBeans mempunyai kompilasi, binaan, muat turun, pelaksanaan jarak jauh, dan debug jarak jauh, menjadikannya pendekatan yang unggul.

Langkah 1: Sediakan Raspberry Pi

Untuk menggunakan pendekatan pengembangan jarak jauh, anda mesti memulakan dengan menetapkan sasaran Raspberry Pi. Terdapat banyak sumber, termasuk Instructables, yang tersedia untuk membantu menyiapkan Raspberry Pi. Lihat ini untuk asas-asas penyediaan Pi (dan banyak lagi).

Instructable ini menganggap anda

  • pasang Raspbian terkini; pastikan anda mencatatkan ID pengguna dan kata laluan Pi
  • sediakan Wifi dan sambungkan ke penghala anda (lihat ini); pastikan anda merakam alamat IP Pi
  • aktifkan SSH (lihat ini) untuk membenarkan akses jauh ke Pi dari stesen kerja

Setelah menyelesaikan persediaan, anda boleh mematikan dan memutuskan sambungan, papan kekunci, dan tetikus dari Pi. Ini adalah salah satu kelebihan utama pembangunan jarak jauh. Anda mesti membiarkan dongle Wifi tersambung (tidak diperlukan, tentu saja, untuk model Pi 3 atau Pi Zero W), dan kemudian anda dapat meningkatkan Pi.

Untuk menguji, buka klien ssh di stesen kerja anda, misalnya Terminal di MacOS atau dempul di Windows. Kemudian masukkan arahan ssh (shell selamat) dengan bentuk berikut:

ssh the_pi_ip_address -l the_pi_user_id

Anda harus mendapat arahan untuk memasukkan kata laluan ID pengguna Pi anda. Sekiranya tidak ada arahan yang muncul, periksa untuk memastikan anda memasukkan alamat IP yang betul dalam perintah ssh. Masukkan kata laluan anda (ia akan disembunyikan) dan kemudian anda akan melihat arahan shell Shell yang muncul seperti ini:

pi @ raspberrypi: ~ $

Sekiranya anda tidak melihat arahannya, periksa ID pengguna dan kata laluan yang anda gunakan.

Sekarang anda mesti mencari jalan ke runtime Java dan mengesahkan versi lalai adalah Java 8 (harus berlaku untuk Raspbian terbaru). Untuk mencari jalan runtime Java, di klien ssh masukkan perintah

sudo update-alternative - paparkan java

Anda mesti melihat respons dengan dua baris pertama yang kelihatan seperti berikut:

java - mod automatik

pautan versi terbaik ialah / usr / lib / jvm / jdk-8-oracle-arm32-vfp-hflt / jre / bin / java

"-8-" pada baris kedua mengesahkan bahawa jangka masa lalai adalah Java 8. Catat jalan di baris kedua kerana anda memerlukannya untuk mengkonfigurasi NetBeans untuk pengembangan jarak jauh di langkah kemudian.

Sekiranya runtime lalai bukan Java 8, di klien ssh masukkan perintah berikut untuk beralih ke Java 8 (dengan asumsi terpasang)

sudo kemas kini-alternatif --config java

Langkah 2: Pasang NetBeans di Workstation

Sekarang anda perlu memasang NetBeans di stesen kerja anda. Arahkan penyemak imbas stesen kerja anda ke halaman muat turun NetBeans. Anda akan melihat beberapa kumpulan yang mungkin menyokong dua edisi Java dan juga bahasa lain. Yang anda perlukan untuk pengembangan Java untuk Raspberry Pi adalah Java SE, tetapi anda dapat memperoleh bundel Java EE atau bundle All. Setelah anda memutuskan kumpulan mana yang anda mahu, klik butang Muat turun yang sesuai. Anda boleh mendapatkan arahan pemasangan tambahan untuk OS stesen kerja anda di sini.

Setelah anda memasang NetBeans, mulakannya (mungkin dilakukan secara automatik selepas pemasangan). Anda harus melihat tetingkap utama NetBeans seperti yang ditunjukkan dalam gambar. Gambar diambil pada Mac, dan tetingkap utama mungkin kelihatan sedikit berbeza pada Windows.

Setelah berjaya memasang dan memulakan NetBeans, teruskan ke langkah seterusnya.

Langkah 3: Konfigurasikan Raspberry Pi Sebagai Platform Jauh di NetBeans

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

Tindakan berikut mengkonfigurasi Raspberry Pi sebagai platform Java SE terpencil untuk NetBeans. Ini membolehkan NetBeans memuat turun dan melaksanakan program Java pada Pi. Anda boleh mendapatkan penerangan yang agak umum di sini.

CATATAN: Dalam langkah ini dan berikut, saya menunjukkan nilai yang khusus untuk persekitaran saya untuk pelbagai aspek konfigurasi dan pengekodan; anda pasti akan berbeza.

Untuk mengkonfigurasi Pi sebagai platform jauh:

  1. Di bar menu utama NetBeans, pilih Alat -> Platform Java. Anda akan melihat tetingkap pop timbul Pengurus Platform Java (gambar satu).
  2. Klik Tambah Platform di kiri bawah. Anda akan melihat pop timbul Tambah Platform Java [jenis platform] (gambar dua).
  3. Pilih Edisi Standard Java Jauh. Klik Seterusnya. Anda akan melihat pop timbul Add Java Platform [set up remote platform] (gambar tiga menunjukkan pop timbul setelah saya memasukkan nilai yang sesuai untuk persekitaran saya di ladang).
  4. Di medan Nama Platform masukkan nama untuk Pi. Anda boleh menggunakan apa sahaja, tetapi mestilah unik.
  5. Di medan Host masukkan alamat IP untuk Pi yang terdapat pada langkah 1.
  6. Di medan Nama Pengguna masukkan nama pengguna yang anda gunakan pada langkah 1.
  7. Biarkan Gunakan Pengesahan Kata Laluan dipilih dan di medan Kata Laluan masukkan kata laluan yang anda buat pada langkah 1.
  8. Di medan JRE Jalan Jauh, anda mesti memasukkan sebahagian besar jalan ke runtime Java pada Pi. Pada langkah 1, itu adalah / usr / lib / jvm / jdk-8-oracle-arm32-vfp-hflt / jre / bin / java. Walau bagaimanapun, anda mesti menurunkan / bin / java dalam nilai medan.
  9. NetBeans memuat turun program yang dapat dijalankan ke direktori kerja di Pi, yang dikenal pasti di bidang Dir Diraja. Lalai adalah / the_Pi_user_ID / NetBeansProjects / dan boleh diterima dengan sempurna. Anda boleh menggunakan sesuatu yang berbeza jika anda mahu, walaupun ia mesti tersedia untuk_Pi_user_ID (gambar tiga).
  10. Klik Selesai di sebelah kanan bawah pop timbul. Setelah diproses, anda akan sekali lagi melihat tetingkap timbul Java Platform Manager. Sekarang anda akan melihat Pi jarak jauh anda (dengan nama yang anda gunakan dalam tindakan 4 di atas) di bawah kategori Java Jauh SE (gambar empat).
  11. Klik Uji Platform di kiri bawah untuk menguji hubungan antara NetBeans dan Pi anda. Anda pertama kali akan melihat pop timbul yang mengatakan Mengesahkan Platform Jauh. Sekiranya berjaya, anda akan mendapat pop timbul kedua yang menunjukkan Sambungan… berjaya dibuat. Sekiranya tidak, anda perlu memeriksa dan membetulkan maklumat yang anda masukkan ke dalam pop timbul Tambah Platform Java [atur platform jauh] dalam tindakan 5-9 di atas. Anda boleh melakukannya dari pop timbul Pengurus Platform Java; pilih platform Pi anda dan kemudian edit medan di sebelah kanan pop timbul.
  12. Setelah sambungan berjaya, klik Tutup dalam pop timbul Pengurus Platform Java. Anda sekarang akan melihat tetingkap utama NetBeans.

Kini keseronokan yang sebenarnya dapat dimulakan!

Langkah 4: Buat Projek Java di Workstation

Ini tidak dimaksudkan untuk menjadi penjelasan lengkap tentang cara menggunakan NetBeans, atau Java, tetapi saya akan menerangkan tindakan minimum untuk menulis program di NetBeans di stesen kerja dan, akhirnya, menjalankan program dari jauh pada Raspberry Pi.

Di NetBeans, anda mesti membuat projek terlebih dahulu untuk mengadakan kelas Java untuk program ini. Selanjutnya, di Java, kelas berada dalam pakej untuk menyokong organisasi dan keamanan. Untuk membuat projek dan membuat pakej dan fail kelas secara pilihan:

  1. Di tetingkap utama NetBeans, klik ikon projek baru (2 dari kiri). Anda akan melihat pop timbul Projek Baru [pilih projek] (gambar satu).
  2. Lalai (Kategori: Java, Projek: Aplikasi Java) betul untuk contoh ini, jadi cukup klik Seterusnya. Anda akan melihat pop timbul Aplikasi Java Baru [nama dan lokasi] (gambar dua menunjukkan nilai untuk contoh saya). CATATAN: Saya telah menyusun semula maklumat pengguna saya menggunakan segi empat tepat berwarna.
  3. Di bidang Project Name, masukkan nama projek Java yang sah yang anda pilih. Nama itu mesti diawali dengan huruf besar, dan konvensi menunjukkan kes unta ketika menggabungkan kata-kata.
  4. Medan Lokasi Projek mengawal tempat projek berada dalam sistem fail anda. Lalai berbeza-beza bergantung pada sistem operasi, tetapi selamat diterima.
  5. Medan Folder Projek membolehkan anda mengawal nama folder untuk projek tersebut. Saya merasa lebih baik menggunakan lalai, yang merupakan gabungan medan Lokasi dan medan Nama.
  6. Apabila kotak centang Buat Kelas Utama dicentang NetBeans secara automatik membuat paket dan fail kelas utama (program yang dapat dijalankan dari baris perintah) dengan nama yang sama dengan projek. Saya rasa biasanya tidak dicentang, tetapi dalam kes ini, saya akan membiarkannya diperiksa yang menghilangkan tindakan eksplisit jika tidak diperlukan (gambar dua).
  7. Klik Selesai untuk membuat projek, pakej dan fail kelas utama. Sekarang panel kiri atas tetingkap utama NetBeans menunjukkan projek anda, yang mengandungi satu pakej, yang seterusnya mengandungi fail kelas tunggal dengan kaedah utama (). Panel kanan atas mengandungi kod sumber lalai untuk kelas utama (program) yang dihasilkan secara automatik oleh NetBeans (gambar tiga).

Pada ketika ini, anda boleh menulis beberapa kod dalam kaedah utama dan menjalankannya di stesen kerja. Itu mungkin kadang-kadang diinginkan, tetapi tidak diperlukan untuk Instructable ini, jadi teruskan ke langkah seterusnya.

Langkah 5: Konfigurasikan Projek NetBeans untuk Menjalankan dari jauh pada Raspberry Pi

Untuk mengkonfigurasi projek NetBeans, dan program yang terdapat di dalamnya, untuk berjalan dari jarak jauh di Raspberry Pi, lakukan yang berikut:

  1. Klik kanan atau 2 jari (bergantung pada OS stesen kerja) pada projek di panel Projek tetingkap utama NetBeans untuk memunculkan menu projek dan klik Properties. Anda akan melihat pop timbul Project Properties (gambar menunjukkan pop timbul dengan nilai yang sesuai untuk contoh saya).
  2. Di bawah Kategori di sebelah kiri, pilih Jalankan.
  3. Klik Baru di sebelah kanan medan Konfigurasi. Dalam pop timbul Buat Konfigurasi Baru yang dihasilkan, masukkan nama untuk konfigurasi dan klik OK. Nama boleh menjadi apa sahaja; Saya baru menggunakan semula nama platform ("My Pi"). Sekali lagi anda akan melihat pop timbul Project Properties.
  4. Klik ikon dropdown di sebelah kanan bidang Runtime Platform. Dari senarai dalam pop timbul, pilih platform jauh yang anda buat sebelumnya (di persekitaran saya, "My Pi").
  5. Klik OK untuk menyediakan platform jauh untuk projek tersebut. Anda sekali lagi akan melihat tetingkap utama.

Anda kini bersedia menulis kod dan menjalankan program dari jauh.

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

Panel kanan di tetingkap utama NetBeans menunjukkan fail kelas utama yang dihasilkan oleh NetBeans. Taipkan pernyataan cetak ringkas dalam kaedah utama fail kelas (gambar satu). Sekarang ini adalah program Java lengkap yang melakukan sesuatu, walaupun sesuatu yang sangat sederhana.

Untuk menjalankan program pada Pi, klik ikon Jalankan (anak panah ke kiri hijau) di tetingkap utama. NetBeans menyusun kod, membina fail jar, memuat turun fail jar ke Raspberry Pi yang dikenalpasti oleh platform jauh, melaksanakan program pada Pi, menangkap output (System.out) program, dan bergema yang dikeluarkan ke NetBeans Panel output di kanan bawah tetingkap utama (gambar dua).

Anda kini telah memperluas kemahiran anda untuk mengembangkan projek di Raspberry Pi! Tapi tunggu…. Ada banyak lagi!

Langkah 7: Debug Program Java Dengan NetBeans

Salah satu ciri yang paling kuat dari persekitaran perindustrian Pembangunan Bersepadu kekuatan seperti NetBeans adalah keupayaan untuk menyahpepijat program semasa berjalan. NetBeans membolehkan anda memanfaatkan rangkaian lengkap alat debug semasa menjalankan dari jauh. Ini termasuk menetapkan titik putus di lokasi "penting" atau "menyusahkan" dalam program dan memeriksa nilai pemboleh ubah pada keadaan pelaksanaan semasa.

Program sederhana pada langkah terakhir terlalu mudah untuk menunjukkan penyahpepijatan, jadi saya menambahkan beberapa kod tambahan ke program ini. Kod tambahan menambah dua pemboleh ubah.

Untuk memanfaatkan alat debug, anda mesti menetapkan satu atau lebih titik putus terlebih dahulu. Untuk menetapkan titik putus, klik pada nombor baris di mana anda ingin menangguhkan pelaksanaan; ikon segi empat merah muncul, dan keseluruhan garis memperoleh latar belakang merah (gambar satu).

Untuk menyahpepijat program yang berjalan di Pi, klik ikon Debug (tepat di sebelah kanan ikon Jalankan) di tetingkap utama NetBeans. Seperti pelaksanaan normal, NetBeans menyusun, membina, memuat turun, melaksanakan, menangkap output, dan menggema output itu. Tetapi dengan penyahpepijatan, NetBeans menghentikan pelaksanaan pada titik putus dan membolehkan anda memeriksa keadaan pelaksanaan (gambar dua, menunjukkan panel Pemboleh ubah di kanan bawah).

Pelaksanaan berhenti di breakpoint sebelum melaksanakan arahan pada baris dengan breakpoint. Latar belakang hijau menunjukkan pernyataan seterusnya yang akan dilaksanakan. Oleh itu, dalam contoh saya, dengan titik putus pada baris 9, pemboleh ubah a belum ada, apalagi mempunyai nilai.

Sekarang arahkan kursor ke atas ikon menu debug di tetingkap utama (ikon anak panah-bawah pertama di sebelah kanan ikon Debug) dan klik ikon Step Over (ia mempunyai dokumen biru di latar belakang dan panah berlawanan arah jarum jam hijau di latar depan). [CATATAN: jika anda membuat tetingkap utama NetBeans anda cukup lebar, menu debug berkembang dan ikon tindakan debug muncul di sebelah kanan ikon Debug.] NetBeans melaksanakan penyataan pada titik putus dan menghentikan pelaksanaan sebelum pernyataan berikutnya. Anda sekarang akan melihat bahawa pemboleh ubah wujud dan mempunyai nilai yang diharapkan (gambar tiga).

Klik ikon Step Over dua kali. Anda akan melihat bahawa ketiga-tiga pemboleh ubah mempunyai nilai; perhatikan bahawa c masih sifar (gambar empat).

Klik ikon Step Over sekali. Anda akan melihat bahawa pemboleh ubah c kini mempunyai nilai yang tepat, iaitu, jumlah pemboleh ubah a dan b (gambar lima).

Akhirnya, dalam menu debug, klik ikon Run (bulatan hijau dengan anak panah putih). Itu menyebabkan pelaksanaan terus ke titik putus seterusnya, atau ke akhir program, mana yang lebih dahulu. Sekarang panel Output muncul dan menunjukkan output yang sama dengan pelaksanaan normal, dalam hal ini teks dalam pernyataan cetak.

Langkah 8: Jalankan Program Bebas daripada NetBeans

Masanya mungkin tiba ketika anda ingin menjalankan program anda di Raspberry Pi, tanpa "bantuan" atau "gangguan" dari NetBeans. Ia sangat ringkas. Pertama, buka klien ssh ke Pi anda.

Ingatlah dari langkah 3 bahawa NetBeans meletakkan jar projek anda di direktori yang berfungsi di Pi. Pangkalan lalai adalah / home / pi / NetBeansProjects untuk pi pengguna. Direktori khusus mempunyai nama yang sama dengan projek anda. NetBeans meletakkan balang di subdirektori yang disebut dist. Untuk contoh saya, jalan penuh adalah / home / pi / NetBeansProjects / MyRemoteProg / dist. Pada klien ssh di Pi, untuk melaksanakan program, anda boleh menggunakan perintah java dengan pilihan 'jar':

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

Anda akan melihat hasil pelaksanaan di klien ssh; dalam contoh saya, output akan menjadi

Helo dari Raspberry Pi!

Ini berfungsi kerana maklumat dalam fail balang mengenal pasti kelas utama dalam balang yang hendak dilaksanakan.

Anda juga boleh mengubah direktori yang berfungsi (melalui cd) ke lokasi fail jar dan kemudian mengeluarkan perintah yang lebih pendek untuk menghasilkan hasil yang sama.

java -jar MyRemoteProg.jar

Langkah 9: Bangun dan Muat turun, Tetapi Tidak Menjalankan Program Melalui NetBeans

Terdapat situasi di mana anda mahu NetBeans membina dan memuat turun program anda, tetapi tidak melaksanakannya. Satu keadaan seperti itu berlaku apabila program anda memerlukan input papan kekunci. Sekiranya demikian, menggunakan teknik pada langkah sebelumnya, setelah anda membuat dan memuat turun, program ini akan dijalankan pada Raspberry Pi dan mengharapkan input papan kekunci dari Pi, tetapi tentu saja, tidak ada papan kekunci yang terpasang pada Pi, jadi program hang - tidak bagus.

Anda harus menggunakan teknik yang agak berbeza untuk melaksanakan program ini. Pada asasnya, anda membuat fail kelas utama "dummy" yang pada dasarnya tidak melakukan apa-apa, dan mengenal pasti ia sebagai program yang akan dilaksanakan setelah dimuat turun. Dalam kes ini, "dummy" dieksekusi, dan anda kemudian boleh menjalankan program "sebenar" anda secara langsung di Pi.

Untuk menggunakan teknik ini, buat kelas utama baru:

  1. Munculkan menu projek seperti pada langkah 5 dan klik Baru-> Java Main Class. Anda akan melihat pop timbul Kelas Utama Java Baru.
  2. Di medan Nama Kelas masukkan nama. Nama itu boleh menjadi apa sahaja yang anda suka; Saya menggunakan "Dummy". Medan Pakej membolehkan anda mengenal pasti pakej kelas; anda memilih pakej menggunakan dropdown di sebelah kanan lapangan. Kelas boleh dalam pakej yang sama dengan program "sebenar" anda atau dalam pakej yang berbeza; Saya meletakkan kelas baru dalam pakej yang sama. Klik Selesai. Anda sekarang akan melihat tetingkap utama NetBeans dengan fail baru di panel kanan atas (gambar satu). Saya menambah pernyataan cetak ringkas tentang menjalankan pada Pi, tetapi tidak ada yang benar-benar diperlukan.

Untuk menjalankan "Dummy" selepas memuat turun, anda mesti menjadikannya "kelas utama untuk dilaksanakan secara lalai" untuk projek:

  1. Buka Properties Projek seperti pada langkah 5. Pilih kategori Run. Klik Browse di sebelah kanan medan Kelas Utama. Anda akan melihat pop timbul Browse Main Classes (gambar dua).
  2. Pilih kelas "Dummy". Klik Pilih Kelas Utama. Anda sekali lagi akan melihat Properties Projek.
  3. Klik OK. Anda akan kembali ke tetingkap utama.

Sekarang apabila anda mengklik ikon Run, NetBeans mematuhi / membina keseluruhan projek, memuat turun balang yang berisi semua fail kelas ke Pi, dan melaksanakan kelas "Dummy" (gambar tiga).

Untuk melaksanakan program sebenar anda di Pi, anda sekarang mesti menggunakan perintah java dengan pilihan 'classpath', yang mengharuskan anda secara eksplisit mengenal pasti kelas utama yang akan dilaksanakan. Dari pelanggan ssh, pergi ke direktori dist untuk projek anda. Perintah yang betul adalah dalam bentuk:

java -cp project_name.jar package_name.class_name

Project_name jelas merujuk kepada projek; yang hanya berubah ketika berurusan dengan projek baru. Package_name tentu saja merujuk kepada paket, dan class_name merujuk kepada kelas utama untuk dilaksanakan. Seperti yang dinyatakan sebelumnya, projek boleh mengandungi banyak pakej. Begitu juga, satu pakej boleh berisi banyak kelas, dan semuanya boleh menjadi kelas utama, atau program, yang dapat dijalankan dari baris perintah. Oleh itu, 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 melaksanakan program contoh saya:

java -cp MyRemoteProg.jar myremoteprog. MyRemoteProg

Langkah 10: Manfaatkan Pengurusan Perpustakaan NetBeans

Salah satu aspek yang paling sukar tetapi paling penting dalam program canggih ialah menangani perpustakaan, iaitu kod yang telah ditulis oleh orang lain. NetBeans melakukan pekerjaan yang mengagumkan untuk menghilangkan sebahagian besar kesakitan pengurusan perpustakaan.

Saya akan gunakan sebagai contoh Pi4J, yang memberi program Java akses ke Raspberry Pi GPIO, I2C bus, dan perkakasan lain I / O. Pi4J hanyalah satu contoh sokongan untuk melakukan banyak perkara yang menyeronokkan di Pi dengan Java.

Anda mesti memuat turun perpustakaan terlebih dahulu ke stesen kerja anda. Lihat halaman muat turun Pi4J. Oleh kerana anda tidak memasang Pi4J pada Pi, muat turun zip ke stesen kerja anda. Anda mungkin atau tidak perlu membuka zip secara terang-terangan setelah zip dimuat turun.

Sekarang anda mesti membuat "perpustakaan global" di NetBeans:

  1. Di menu utama NetBeans, klik Alat -> Perpustakaan. Anda akan melihat pop timbul Pengurus Perpustakaan Ant (gambar satu).
  2. Klik Perpustakaan Baru di kiri bawah. Anda akan melihat pop timbul Perpustakaan Baru (gambar dua).
  3. Taipkan nama yang bermakna yang anda mahu gunakan dan klik OK. Anda sekali lagi akan melihat pop timbul Pengurus Perpustakaan Ant. Sekarang menunjukkan perpustakaan baru yang anda buat (gambar tiga).
  4. Klik Tambah JAR / Folder di sebelah kanan. Anda akan melihat pop timbul Browse JAR / Folder (gambar empat).
  5. Navigasi ke dan kemudian pilih pi4j-core.jar. Kemudian klik Tambah JAR / Folder. Anda akan kembali ke pop timbul Pengurus Perpustakaan.
  6. Dalam pop timbul Pengurus Perpustakaan, klik OK. Anda akan kembali ke tetingkap utama NetBeans.

Anda telah menambahkan perpustakaan sehingga dapat digunakan dalam projek apa pun. Sekarang anda mesti menambahkan perpustakaan ke projek anda:

  1. Munculkan pop timbul Project Properties (lihat langkah 5) dan pilih kategori Perpustakaan (gambar lima).
  2. Klik Tambah Perpustakaan di sebelah kanan pop timbul. Anda akan melihat pop timbul Tambah Perpustakaan (gambar enam).
  3. Navigasi ke perpustakaan dan pilih. Kemudian klik Tambah Pustaka. Anda sekali lagi akan melihat pop timbul Project Properties. Perpustakaan kini muncul dalam senarai Perpustakaan masa Kompilasi dalam pop timbul.
  4. Dalam pop timbul Project Properties klik OK. Anda akan kembali ke tetingkap utama.

Anda telah menambahkan perpustakaan ke projek anda supaya program anda dapat menggunakannya. Anda boleh melakukan urutan tindakan yang sama untuk perpustakaan yang anda perlukan untuk program.

Terdapat tiga kali anda memerlukan perpustakaan - menyusun, membina, dan melaksanakan. Nasib baik, dengan NetBeans, menambahkan perpustakaan seperti yang ditunjukkan di atas menangani semua. Untuk mengesahkan ini, saya telah membuat kelas utama lain yang memerlukan minimum mutlak yang diperlukan untuk menggunakan keupayaan I2C dalam Pi4J (gambar tujuh). Fakta bahawa tidak ada kesalahan menunjukkan bahawa kelas TestPi4J menyusun. Mengklik Jalankan berjaya membina dan memuat turun; NetBeans memuat turun perpustakaan sebagai tambahan kepada fail jar, jadi program akan dijalankan. Untuk mengesahkan yang terakhir, anda dapat menggunakan teknik pada langkah 9 dan pada klien ssh masukkan perintah berikut (dari direktori dist):

java -cp MyRemoteProg.jar myremoteprog. TestPi4J

Ini adalah instruktif untuk memahami bagaimana NetBeans mengendalikan perpustakaan. Semasa berada di direktori dist untuk projek anda, senaraikan isi direktori (gunakan perintah ls) dan anda akan melihat subdirektori lib. Senaraikan kandungan direktori itu dan anda akan melihat fail jar yang dikenal pasti di perpustakaan global, yang dalam contoh saya adalah pi4j-core.jar. Semua perpustakaan yang anda tambahkan ke projek akan muncul di direktori lib, dan dengan itu tersedia untuk semua program dalam fail jar projek.

Langkah 11: Selamat Bersenang-senang

Saya telah menerangkan pendekatan untuk mencapai pengembangan Java yang sangat efisien untuk Raspberry Pi. Raspberry Pi adalah teknologi yang sangat popular untuk pelbagai projek. Java adalah bahasa pengaturcaraan kelas profesional yang menawarkan kelebihan prestasi berbanding Python dan menawarkan kelebihan keselamatan berbanding C / C ++. NetBeans adalah IDE kelas profesional yang sangat meningkatkan produktiviti pengaturcara.

Saya rasa gabungannya cukup menarik. Sekarang, bergembira menggunakan kombinasi untuk projek anda.

Disyorkan: