Raspberry Pi için Verimli Java Geliştirme: 11 Adım (Resimlerle)
Raspberry Pi için Verimli Java Geliştirme: 11 Adım (Resimlerle)
Anonim

Bu Eğitilebilir Tablo, Raspberry Pi için Java programları geliştirmek için çok verimli bir yaklaşımı açıklar. Düşük seviyeli cihaz desteğinden çok iş parçacıklı ve ağ tabanlı programlara kadar Java yeteneklerini geliştirmek için bu yaklaşımı kullandım. Yaklaşım sadece verimli değil, aynı zamanda ücretsizdir!

Temel olarak, yaklaşım NetBeans kullanarak uzaktan geliştirmedir. NetBeans, Wifi aracılığıyla Raspberry Pi'ye bağlı bir iş istasyonunda (Masaüstü veya dizüstü bilgisayar, Raspberry Pi değil) çalışır. Her şey düzgün bir şekilde ayarlandıktan sonra, NetBeans'te bir Java programı yazabilir ve ardından tek bir tıklama programı iş istasyonunda derler ve oluşturur, programı Pi'ye indirir, programı Pi'de çalıştırır ve çıktıyı NetBeans konsoluna iletir.. Büyü! Hatta çalışan programın hatalarını ayıklayabilir, kesme noktaları ayarlayabilir ve değişken değerlerini inceleyebilirsiniz. Daha fazla sihir!

Bu tanıtımın geri kalanında Java kullanma ve NetBeans kullanarak uzaktan geliştirme motivasyonu açıklanmaktadır. Motivasyonu önemsiyorsanız, okumaya devam edin. Umursamıyorsanız, 1. adıma gidin.

Neden Raspberry Pi'de Java kullanmalısınız?

Raspberry Pi için birçok programlama dili mevcuttur, ancak tartışmayı bağımsız programları hedefleyen, çoklu görevi destekleyen, donanım ve ağ erişimine izin veren vb. "profesyonel düzeyde" programlama dilleriyle sınırlayacağım. Bu, Java, Python veya C/C++. Raspbian'ın en son sürümleri, tüm bu diller için geliştirme ve çalışma zamanı desteği içerir.

Python, en azından kısmen yeni programcılar için öğrenme kolaylığı nedeniyle Pi'de kullanılmak üzere "terfi ettirildi". Ben deneyimli bir programcıyım ve Python'un bir dizi özelliğinden, örneğin dinamik yazmadan, kuşkusuz öznel bir hoşnutsuzluk nedeniyle, Python'a düşkün değilim. Python'un sevmediğim bir özelliği var - performans. Bu kaynak, Java'nın her zaman Python 3'ten daha hızlı olduğunu ve aslında göreve bağlı olarak yüzlerce kat daha hızlı çalışabileceğini gösterir.

Bence C, "üst düzey bir makine dili", yani sistem donanımına veya en azından işletim sistemine çok yakın bir şeydir. Hemen hemen her şeyi yapabilirsiniz ve bunu olabildiğince hızlı yapabilirsiniz; aslında bu kaynak, C'nin Java kadar hızlı 7X'e kadar çalışabileceğini öne sürüyor. Ayrıca C'den hoşlanmıyorum, çünkü onun (öznel olarak) gizli, arkaik veya her ikisini de bulduğum bazı özelliklerinden hoşlanmam; örneğin, açık işaretçiler. Nesnel olarak, her şeyi yapabileceğiniz gerçeği, belleğin üzerine yazmaktan ve potansiyel olarak programı ve hatta tüm sistemi çökertmekten yalnızca belirsiz bir hata (örneğin, hatalı işaretçi aritmetiği veya hatalı bir memcpy) olduğunuz anlamına gelir. Java bu tür tehlikeleri önler, bu nedenle Java daha güvenlidir. Güvenliğin programcı üretkenliğini de artırdığını düşünüyorum. C++'ı, C'nin tehlikelerini ortadan kaldırmak için hiçbir şey yapmayan, C çevresinde nesne yönelimli bir "sarmalayıcı" olarak görüyorum.

Sonuç olarak: Java, Python'dan daha hızlıdır. Java, C'den daha güvenlidir.

Java kullanırken sınırlamalar var mı?

Şimdiye kadar Python'da yapabildiğim her şeyi Java'da yapabildim. C'de yapıp Java'da yapamadığım şeyler var ama yine de şimdiye kadar yapmak istediğim her şey Pi topluluğundaki Java hayranları tarafından ele alındı. Daha sonraki bir adımda bir örnek sunacağım. Bununla birlikte, sensörler için yalnızca Python'da (veya Arduino için C/C++) "sürücüler" sağlayan satıcılardan sensörler satın aldım, bu yüzden Java eşdeğerini yazmak zorunda kaldım; fazladan çaba üretken olmak zorunda değildir, ancak bir sensörün çalışmasına ilişkin daha fazla içgörüyle sonuçlanabilir.

Neden NetBeans'e dayalı uzaktan geliştirme?

NetBeans tabanlı uzaktan geliştirmenin, Raspberry Pi için Java kullanırken üretkenliği büyük ölçüde artırdığını buldum. Java'nın doğal özelliklerinden dolayı hızlı ve güvenli programlar oluşturmak için bu yaklaşımı kullanabileceğinizden eminim; yazarken, oluştururken ve hata ayıklarken, "profesyonel" kullanarak uzaktan geliştirme sayesinde bulduğum diğer yaklaşımlardan çok daha hızlı. "NetBeans Entegre Geliştirme Ortamı (IDE).

Bu "diğer yaklaşımları" kısaca tartışmak faydalı olabilir. Hepsi, Raspberry Pi'nin bağlı klavye, fare veya ekrana sahip olmadığı temel kriterlerini karşılar. Bu kriterin bir çok sebebi var ama benim öncelikli sebebim mobil robotlar geliştiriyor olmam ve geliştirme aşamasında bile Pi'nin robotik alt sistemler dışında herhangi bir çevre birimine bağlanmasını istemem.

Raspbian'da bulunan VNC sunucusu, iş istasyonunda yalnızca uzak GUI'nin çalıştığı ve yazma, derleme ve oluşturma gibi her şeyin Pi üzerinde gerçekleştiği bir uzaktan geliştirme biçimine izin veren bir uzak grafik kullanıcı arabirimi (GUI) sağlar. VNC ile Raspbian'da sunulan BlueJ, Geany ve Greenfoot gibi Java özellikli geliştirme araçlarını kullanmak kolaydır. Bunlardan bazıları bir IDE olarak kabul edilebilir; ancak, onları profesyonel düzeyden uzak buluyorum.

Raspberry Pi'ye Eclipse veya NetBeans gibi profesyonel kalitede bir Java IDE yüklemek ve VNC aracılığıyla uzaktan kullanmak teknik olarak mümkündür. Raporlar ve sağduyu, uzak bir GUI tarafından sunulan ağ gecikmesinin yanı sıra, bu tür IDE'lerin gerektirdiği geniş bellek ayak izi ve CPU gücü nedeniyle sonuçların hayal kırıklığı yaratacağını öne sürüyor.

Hem Eclipse hem de NetBeans bir iş istasyonunda çok iyi çalışır. Eclipse ile kod yazmak hoş bir deneyimdir, ancak programı oluşturmak öyle değildir; programın indirilmesi Eclipse'in dışında gerçekleşmelidir; Programı Pi üzerinde çalıştırmak Eclipse'den tamamen bağımsızdır. Genel sonuç, uzaktan hata ayıklamayı destekleyemeyen, çok adımlı, neredeyse zahmetli bir süreçtir. NetBeans'in yerleşik derleme, derleme, indirme, uzaktan yürütme ve uzaktan hata ayıklama özellikleri onu üstün bir yaklaşım haline getirir.

1. Adım: Raspberry Pi'yi Kurun

Uzaktan geliştirme yaklaşımını kullanmak için hedef Raspberry Pi'yi ayarlayarak başlamalısınız. Bir Raspberry Pi kurmaya yardımcı olacak Instructables dahil birçok kaynak vardır. Pi'yi (ve daha fazlasını) kurmanın temelleri için buna bakın.

Bu Eğitilebilirlik sizi varsayar

  • en son Raspbian'ı yükleyin; Pi kullanıcı kimliğini ve şifresini kaydettiğinizden emin olun
  • Wifi'yi kurun ve yönlendiricinize bağlanın (buna bakın); Pi'nin IP adresini kaydettiğinizden emin olun
  • iş istasyonundan Pi'ye uzaktan erişime izin vermek için SSH'yi etkinleştirin (buna bakın)

Kurulumu tamamladıktan sonra, Pi'den ekranı, klavyeyi ve fareyi kapatabilir ve bağlantısını kesebilirsiniz. Bu, uzaktan geliştirmenin en önemli avantajlarından biridir. Herhangi bir Wifi dongle'ını bağlı bırakmalısınız (elbette bir Pi model 3 veya Pi Zero W için gerekli değildir) ve ardından Pi'yi açabilirsiniz.

Test etmek için iş istasyonunuzda bir ssh istemcisi açın, örneğin MacOS'ta Terminal veya Windows'ta macun. Ardından aşağıdaki formla ssh (güvenli kabuk) komutunu girin:

ssh the_pi_ip_address -l the_pi_user_id

Pi kullanıcı kimliğinizin şifresini girmeniz için bir istem almalısınız. Herhangi bir istem görüntülenmezse, ssh komutunda doğru IP adresini girdiğinizden emin olun. Parolanızı girin (gizlenecektir) ve ardından Pi'nin aşağıdaki gibi görünen kabuk istemini görmelisiniz:

pi@raspberrypi:~ $

İstemi görmüyorsanız, kullandığınız kullanıcı kimliğini ve parolayı kontrol edin.

Şimdi Java çalışma zamanının yolunu bulmalı ve varsayılan sürümün Java 8 olduğunu onaylamalısınız (en son Raspbian için doğru olmalıdır). Java çalışma zamanı yolunu bulmak için ssh istemcisinde şu komutu girin:

sudo güncelleme alternatifleri -- java'yı görüntüle

Aşağıdaki gibi görünen ilk iki satırda bir yanıt görmelisiniz:

java - otomatik mod

bağlantının en iyi sürümü /usr/lib/jvm/jdk-8-oracle-arm32-vfp-hflt/jre/bin/java

İkinci satırdaki "-8-", varsayılan çalışma zamanının Java 8 olduğunu onaylar. Daha sonraki bir adımda NetBeans'i uzaktan geliştirme için yapılandırmanız gerekeceğinden, yolu ikinci satıra kaydedin.

Varsayılan çalışma zamanı Java 8 değilse, ssh istemcisinde Java 8'e geçmek için aşağıdaki komutu girin (yüklü olduğu varsayılarak)

sudo güncelleme alternatifleri --config java

Adım 2: NetBeans'i İş İstasyonuna Kurun

Şimdi iş istasyonunuza NetBeans yüklemeniz gerekiyor. İş istasyonu tarayıcınızı NetBeans indirme sayfasına yönlendirin. Java'nın iki sürümünü ve diğer dilleri destekleyen birkaç olası paket göreceksiniz. Raspberry Pi için Java geliştirme için ihtiyacınız olan tek şey Java SE'dir, ancak Java EE paketini veya Tümü paketini alabilirsiniz. Hangi paketi istediğinize karar verdikten sonra ilgili İndir düğmesine tıklayın. İş istasyonu işletim sisteminiz için ek kurulum talimatlarını burada bulabilirsiniz.

NetBeans'i kurduktan sonra başlatın (kurulumdan sonra bunu otomatik olarak yapabilir). Resimde görüldüğü gibi NetBeans ana penceresini görmelisiniz. Resim bir Mac'te çekildi ve ana pencere Windows'ta biraz farklı görünebilir.

NetBeans'i başarıyla yükledikten ve başlattıktan sonra bir sonraki adıma geçin.

Adım 3: Raspberry Pi'yi NetBeans'te Uzak Platform Olarak Yapılandırın

Raspberry Pi'yi NetBeans'te Uzak Platform Olarak Yapılandırma
Raspberry Pi'yi NetBeans'te Uzak Platform Olarak Yapılandırma

Aşağıdaki eylemler, Raspberry Pi'yi NetBeans için uzak bir Java SE platformu olarak yapılandırır. Bu, NetBeans'in Java programlarını Pi üzerinde indirmesini ve yürütmesini sağlar. Burada biraz genel bir açıklama bulabilirsiniz.

NOT: Bu ve sonraki adımlarda, yapılandırma ve kodlamanın çeşitli yönleri için ortamıma özgü değerleri gösteriyorum; sizinki kesinlikle farklı olacak.

Pi'yi uzak bir platform olarak yapılandırmak için:

  1. NetBeans ana menü çubuğunda Araçlar -> Java Platformları'nı seçin. Java Platform Manager açılır penceresini göreceksiniz (birinci resim).
  2. Sol alttaki Platform Ekle'ye tıklayın. Java Platformu Ekle [platform türü] açılır penceresini göreceksiniz (resim iki).
  3. Remote Java Standard Edition'ı seçin. Sonrakine tıkla. Java Platformu Ekle [uzak platform kur] açılır penceresini göreceksiniz (üçüncü resim, alanlara ortamım için uygun değerleri girdikten sonra açılan pencereyi gösteriyor).
  4. Platform Adı alanına Pi için bir ad girin. Hemen hemen her şeyi kullanabilirsiniz, ancak benzersiz olmalıdır.
  5. Host alanına, 1. adımda bulunan Pi'nin IP adresini girin.
  6. Kullanıcı adı alanına 1. adımda kullandığınız kullanıcı adını girin.
  7. Use Password Authentication seçili bırakın ve Password alanına 1. adımda oluşturduğunuz parolayı girin.
  8. Uzak JRE Yolu alanına, Pi'deki Java çalışma zamanına giden yolun çoğunu girmelisiniz. 1. adımda, /usr/lib/jvm/jdk-8-Oracle-arm32-vfp-hflt/jre/bin/java idi. Ancak, alan değerine /bin/java'yı bırakmalısınız.
  9. NetBeans, çalıştırılabilir programı, Working Dir alanında tanımlanan Pi üzerindeki bir çalışma dizinine indirir. Varsayılan /the_Pi_user_ID/NetBeansProjects/ şeklindedir ve tamamen kabul edilebilir. Arzu ederseniz farklı bir şey kullanabilirsiniz, ancak bunun the_Pi_user_ID tarafından erişilebilir olması gerekir (üçüncü resim).
  10. Açılır pencerenin sağ alt kısmındaki Bitir'e tıklayın. İşlemden sonra Java Platform Manager açılır penceresini bir kez daha görmelisiniz. Şimdi uzak Pi'nizi (yukarıdaki eylem 4'te kullandığınız ad altında) Remote Java SE kategorisi altında görmelisiniz (resim dört).
  11. NetBeans ve Pi'niz arasındaki bağlantıyı test etmek için sol alttaki Test Platformu'na tıklayın. Önce Uzak Platform Doğrulanıyor yazan bir açılır pencere göreceksiniz. Başarılı olursa, Bağlantının başarıyla kurulduğunu belirten ikinci bir açılır pencere alırsınız. Değilse, yukarıdaki 5-9 arasındaki eylemlerde Java Platformu Ekle [uzak platform kur] açılır penceresine girdiğiniz bilgileri kontrol etmeniz ve düzeltmeniz gerekir. Bunu Java Platform Yöneticisi açılır penceresinden yapabilirsiniz; sadece Pi platformunuzu seçin ve ardından açılır pencerenin sağ tarafındaki alanları düzenleyin.
  12. Başarılı bir bağlantıdan sonra Java Platform Yöneticisi açılır penceresinde Kapat'a tıklayın. Şimdi NetBeans ana penceresini göreceksiniz.

Şimdi gerçek eğlence başlayabilir!

Adım 4: İş İstasyonunda Bir Java Projesi Oluşturun

Bu, NetBeans'in veya Java'nın nasıl kullanılacağının tam bir açıklaması olmayı amaçlamamaktadır, ancak iş istasyonunda NetBeans'te bir program yazmak ve nihayetinde programı Raspberry Pi'de uzaktan çalıştırmak için gereken minimum eylemleri anlatacağım.

NetBeans'te öncelikle program için Java sınıf(lar)ını tutacak bir proje oluşturmalısınız. Ayrıca, Java'da sınıflar, organizasyonu ve güvenliği desteklemek için paketlerde bulunur. Projeyi oluşturmak ve isteğe bağlı olarak bir paket ve bir sınıf dosyası oluşturmak için:

  1. NetBeans ana penceresinde, yeni proje simgesine (soldan 2.) tıklayın. Yeni Proje [proje seç] açılır penceresini göreceksiniz (birinci resim).
  2. Bu örnek için varsayılanlar (Kategori: Java, Proje: Java Uygulaması) doğrudur, bu nedenle İleri'ye tıklamanız yeterlidir. Yeni Java Uygulaması [ad ve konum] açılır penceresini göreceksiniz (resim iki, örneğim için değerleri göstermektedir). NOT: Kullanıcı bilgilerimi renkli dikdörtgenler kullanarak düzelttim.
  3. Proje Adı alanına, seçtiğiniz geçerli bir Java proje adı girin. Ad büyük harfle başlamalıdır ve kural, sözcükleri birleştirirken deve durumunu önerir.
  4. Proje Konumu alanı, projenin dosya sisteminizde nerede bulunduğunu kontrol eder. Varsayılan, işletim sistemine bağlı olarak değişir, ancak kabul edilmesi güvenlidir.
  5. Proje Klasörü alanı, proje için klasör adını kontrol etmenizi sağlar. Konum alanı ve Ad alanının bir birleşimi olan varsayılanı kullanmayı en iyi şekilde buluyorum.
  6. Ana Sınıf Oluştur onay kutusu işaretlendiğinde NetBeans otomatik olarak projeyle aynı ada sahip bir paket ve bir ana sınıf dosyası (komut satırından çalıştırılabilen bir program) oluşturur. Genelde işaretlenmemiş olması gerektiğini düşünüyorum, ancak bu durumda, aksi takdirde yapılması gereken açık eylemleri ortadan kaldıran işaretli bırakacağım (resim iki).
  7. Projeyi, paketi ve ana sınıf dosyasını oluşturmak için Bitir'e tıklayın. Şimdi NetBeans ana penceresinin sol üst bölmesi, tek bir paket içeren projenizi gösterir, bu da sırayla main() yöntemiyle tek bir sınıf dosyası içerir. Sağ üst bölme, NetBeans tarafından otomatik olarak oluşturulan ana sınıf (program) için varsayılan kaynak kodunu içerir (üçüncü resim).

Bu noktada ana metoda bazı kodlar yazabilir ve iş istasyonunda çalıştırabilirsiniz. Bu bazen istenebilir, ancak bu Eğitilebilirlik için gerekli değildir, bu nedenle bir sonraki adıma geçin.

Adım 5: NetBeans Projesini Raspberry Pi'de Uzaktan Çalıştırılacak Şekilde Yapılandırın

NetBeans projesini ve içerdiği bir programı Raspberry Pi üzerinde uzaktan çalışacak şekilde yapılandırmak için aşağıdakileri yapın:

  1. Proje menüsünü getirmek için NetBeans ana penceresinin Projeler bölmesinde projeye sağ veya 2 parmakla tıklayın (iş istasyonu işletim sistemine bağlıdır). Proje Özellikleri açılır penceresini göreceksiniz (resimde, örneğim için uygun değerlere sahip açılır pencere gösterilmektedir).
  2. Soldaki Kategoriler altında Çalıştır'ı seçin.
  3. Yapılandırma alanının sağındaki Yeni'ye tıklayın. Ortaya çıkan Yeni Yapılandırma Oluştur açılır penceresinde yapılandırma için bir ad girin ve Tamam'a tıklayın. İsim herhangi bir şey olabilir; Az önce platformun adını ("My Pi") yeniden kullandım. Bir kez daha Proje Özellikleri açılır penceresini göreceksiniz.
  4. Runtime Platform alanının sağındaki açılır simgeye tıklayın. Açılır penceredeki listeden daha önce oluşturduğunuz uzak platformu seçin (ortamımda "My Pi").
  5. Proje için uzak platformu kurmak için Tamam'a tıklayın. Ana pencereyi bir kez daha göreceksiniz.

Artık kod yazmaya ve programı uzaktan çalıştırmaya hazırsınız.

Adım 6: İş İstasyonuna Bir Java Programı Yazın ve Raspberry Pi'de Çalıştırın

NetBeans ana penceresindeki sağ panel, NetBeans tarafından oluşturulan ana sınıf dosyasını gösterir. Sınıf dosyasının ana yöntemine basit bir print deyimi yazın (birinci resim). Artık çok basit bir şey olsa da bir şeyler yapan eksiksiz bir Java programıdır.

Programı Pi'de çalıştırmak için ana penceredeki Çalıştır simgesine (yeşil sola bakan ok) tıklayın. NetBeans kodu derler, bir jar dosyası oluşturur, jar dosyasını uzak platform tarafından tanımlanan Raspberry Pi'ye indirir, programı Pi üzerinde yürütür, programın çıktısını (System.out) yakalar ve çıktıyı NetBeans'e yansıtır. Ana pencerenin sağ alt kısmındaki çıktı bölmesi (resim iki).

Artık Raspberry Pi'de projeler geliştirmek için beceri setinizi önemli ölçüde genişlettiniz! Fakat bekle…. Fazlası var!

7. Adım: Java Programında NetBeans ile Hata Ayıklayın

NetBeans gibi endüstriyel güce sahip bir Entegre Geliştirme Ortamının en güçlü özelliklerinden biri, çalışırken programda hata ayıklama yeteneğidir. NetBeans, uzaktan çalışırken tüm hata ayıklama araçlarından yararlanmanıza olanak tanır. Bu, programdaki "önemli" veya "zorlu" konumlarda kesme noktalarının ayarlanmasını ve geçerli yürütme durumundaki değişkenlerin değerinin incelenmesini içerir.

Son adımdaki basit program, hata ayıklamayı göstermek için çok basit, bu yüzden programa bazı ek kodlar ekledim. Ek kod iki değişken ekler.

Hata ayıklama araçlarından yararlanmak için önce bir veya daha fazla kesme noktası ayarlamalısınız. Bir kesme noktası ayarlamak için yürütmeyi askıya almak istediğiniz satır numarasına tıklayın; kırmızı bir dikdörtgen simgesi görünür ve tüm çizgi kırmızı bir arka plan alır (birinci resim).

Pi üzerinde çalışan programın hatalarını ayıklamak için NetBeans ana penceresinde Hata Ayıkla simgesine (Çalıştır simgesinin hemen sağında) tıklayın. Normal yürütmede olduğu gibi, NetBeans derler, oluşturur, indirir, yürütür, çıktıyı yakalar ve çıktıyı yankılar. Ancak hata ayıklama ile NetBeans, kesme noktalarında yürütmeyi durdurur ve yürütme durumunu incelemenize olanak tanır (sağ altta Değişkenler bölmesini gösteren ikinci resim).

Yürütme, kesme noktası olan satırdaki talimatı yürütmeden önce kesme noktasında durur. Yeşil arka plan, yürütülecek bir sonraki ifadeyi gösterir. Bu nedenle, 9. satırda bir kesme noktası olan örneğimde, a değişkeni henüz mevcut değil, çok daha az bir değere sahip.

Şimdi imleci ana penceredeki hata ayıklama menüsü simgesinin üzerine getirin (Hata Ayıklama simgesinin sağındaki ilk çift aşağı ok simgesi) ve Adım At simgesini (arka planda mavi bir belge ve yeşil bir saat yönünün tersine ok vardır) tıklayın ön planda). [NOT: NetBeans ana pencerenizi yeterince geniş yaparsanız, hata ayıklama menüsü genişler ve hata ayıklama eylemi simgeleri Hata Ayıklama simgesinin sağında görünür.] NetBeans, ifadeyi kesme noktasında yürütür ve sonraki ifadeden önce yürütmeyi durdurur. Şimdi a değişkeninin var olduğunu ve beklenen değere sahip olduğunu göreceksiniz (resim üç).

Step Over simgesine iki kez tıklayın. Üç değişkenin de değerleri olduğunu göreceksiniz; c'nin hala sıfır olduğuna dikkat edin (resim dört).

Step Over simgesine bir kez tıklayın. c değişkeninin artık uygun değere, yani a ve b değişkenlerinin toplamına sahip olduğunu göreceksiniz (resim beş).

Son olarak, hata ayıklama menüsünde Çalıştır simgesine (beyaz oklu yeşil bir daire) tıklayın. Bu, yürütmenin bir sonraki kesme noktasına veya programın sonuna (hangisi önce gelirse) devam etmesine neden olur. Şimdi Çıktı bölmesi görünür ve normal yürütmeyle aynı çıktıyı gösterir, bu durumda print ifadesindeki metin.

Adım 8: Programı NetBeans'ten Bağımsız Yürütün

NetBeans'ten "yardım" veya "parazit" olmadan Raspberry Pi'de programınızı yürütmek istediğiniz zaman gelebilir. O çok basit. İlk önce Pi'nize bir ssh istemcisi açın.

3. adımdan NetBeans'in proje kavanozunuzu Pi'deki bir çalışma dizinine yerleştirdiğini unutmayın. pi kullanıcısı için varsayılan taban /home/pi/NetBeansProjects şeklindedir. Belirli dizin projenizle aynı ada sahiptir. NetBeans, kavanozu dist adlı bir alt dizine yerleştirir. Örneğimde, tam yol /home/pi/NetBeansProjects/MyRemoteProg/dist. Pi'deki ssh istemcisinde, programı çalıştırmak için 'jar' seçeneğiyle Java komutunu kullanabilirsiniz:

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

Yürütmenin sonuçlarını ssh istemcisinde göreceksiniz; benim örneğimde, çıktı olacak

Raspberry Pi'den merhaba!

Bu işe yarar, çünkü jar dosyasındaki bilgiler, kavanozdaki hangi ana sınıfın yürütüleceğini tanımlar.

Ayrıca çalışma dizinini (cd aracılığıyla) jar dosyasının konumuna değiştirebilir ve ardından aynı sonuçları elde etmek için daha kısa bir komut verebilirsiniz.

java -jar MyRemoteProg.jar

Adım 9: Oluşturun ve İndirin, Ancak Programı NetBeans Üzerinden Yürütmeyin

NetBeans'in programınızı oluşturmasını ve indirmesini istediğiniz ancak yürütmesini istemediğiniz durumlar vardır. Böyle bir durum, programınız klavye girişine ihtiyaç duyduğunda ortaya çıkar. Durum buysa, bir önceki adımdaki tekniği kullanarak, bir kez oluşturup indirdiğinizde, program Raspberry Pi üzerinde çalışır ve bu nedenle Pi'den klavye girişi bekler, ancak elbette Pi'ye bağlı bir klavye yoktur, bu yüzden program kilitleniyor -- iyi değil.

Programı çalıştırmak için biraz farklı bir teknik kullanmalısınız. Temel olarak, temelde hiçbir şey yapmayan bir "sahte" ana sınıf dosyası yaratırsınız ve onu indirdikten sonra yürütülecek program olarak tanımlarsınız. Bu durumda, "kukla" yürütülür ve ardından "gerçek" programınızı doğrudan Pi üzerinde çalıştırabilirsiniz.

Bu tekniği kullanmak için önce yeni bir ana sınıf oluşturun:

  1. 5. adımdaki gibi proje menüsünü açın ve Yeni->Java Ana Sınıfı'na tıklayın. Yeni Java Ana Sınıfı açılır penceresini göreceksiniz.
  2. Sınıf Adı alanına bir ad girin. İsim istediğiniz herhangi bir şey olabilir; "Aptal" kullandım. Paket alanı, sınıfın paketini tanımlamanıza olanak tanır; Alanın sağındaki açılır menüyü kullanarak paketi seçin. Sınıf, "gerçek" programınızla aynı pakette veya farklı bir pakette olabilir; Yeni sınıfı aynı pakete koydum. Bitir'i tıklayın. Şimdi sağ üst panelde yeni dosya ile NetBeans ana penceresini göreceksiniz (birinci resim). Pi üzerinde çalışmakla ilgili basit bir baskı ifadesi ekledim, ancak gerçekten hiçbir şeye gerek yok.

İndirdikten sonra "Kukla"yı çalıştırmak için onu proje için "varsayılan olarak yürütülecek ana sınıf" yapmalısınız:

  1. 5. adımdaki gibi Proje Özellikleri'ni açın. Çalıştır kategorisini seçin. Ana Sınıf alanının sağındaki Gözat'a tıklayın. Ana Sınıflara Gözat açılır penceresini göreceksiniz (resim iki).
  2. "Kukla" sınıfını seçin. Ana Sınıfı Seç'e tıklayın. Project Properties'i bir kez daha göreceksiniz.
  3. Tamam'ı tıklayın. Ana pencereye döneceksiniz.

Şimdi Çalıştır simgesine tıkladığınızda, NetBeans tüm projeye uyar/oluşturur, tüm sınıf dosyalarını içeren jar'ı Pi'ye indirir ve "Dummy" sınıfını yürütür (üçüncü resim).

Gerçek programınızı Pi'de yürütmek için, şimdi yürütülecek ana sınıfı açıkça tanımlamanızı gerektiren 'classpath' seçeneğiyle Java komutunu kullanmalısınız. Bir ssh istemcisinden projeniz için dist dizinine gidin. Uygun komut şu şekildedir:

java -cp proje_adı.jar paket_adı.sınıf_adı

proje_adı açıkça projeye atıfta bulunur; bu sadece yeni bir projeyle uğraşırken değişir. Elbette paket_adı paketi ifade eder ve sınıf_adı yürütülecek ana sınıfı ifade eder. Daha önce de belirtildiği gibi, bir proje birçok paket içerebilir. Benzer şekilde, bir paket birçok sınıf içerebilir ve tümü ana sınıflar veya komut satırından çalıştırılabilen programlar olabilir. Bu nedenle, 'sınıf yolu' tekniği, bazıları yalnızca birim testine yardımcı olmak için ana sınıflar olan birçok sınıflı karmaşık programlar geliştirmek için oldukça kullanışlıdır.

Aşağıdaki komut örnek programımı yürütür:

java -cp MyRemoteProg.jar myremoteprog. MyRemoteProg

Adım 10: NetBeans Kitaplığı Yönetiminden Yararlanın

Sofistike programların en zor ama en önemli yönlerinden biri kitaplıklarla, yani başka birinin zaten yazdığı kodlarla uğraşmaktır. NetBeans, kütüphane yönetiminin acılarının çoğunu ortadan kaldırmak için takdire şayan bir iş çıkarıyor.

Java programlarına Raspberry Pi GPIO, I2C veriyolu ve diğer donanım G/Ç'lerine erişim sağlayan Pi4J'yi örnek olarak kullanacağım. Pi4J, Java ile Pi'de çok sayıda eğlenceli şey yapmaya yönelik desteğin yalnızca bir örneğidir.

Önce kütüphaneyi iş istasyonunuza indirmelisiniz. Pi4J indirme sayfasına bakın. Pi'ye Pi4J yüklemediğiniz için zip'i iş istasyonunuza indirin. Zip indirildikten sonra sıkıştırmayı açıkça açmanız gerekebilir veya olmayabilirsiniz.

Şimdi NetBeans'te bir "küresel kitaplık" oluşturmalısınız:

  1. NetBeans ana menüsünde Araçlar ->Kitaplıklar'a tıklayın. Karınca Kütüphane Yöneticisi açılır penceresini göreceksiniz (birinci resim).
  2. Sol alttaki Yeni Kitaplık'a tıklayın. Yeni Kitaplık açılır penceresini göreceksiniz (resim iki).
  3. Kullanmak istediğiniz anlamlı bir ad yazın ve Tamam'ı tıklayın. Karınca Kütüphane Yöneticisi açılır penceresini bir kez daha göreceksiniz. Şimdi oluşturduğunuz yeni kitaplığı gösterir (üçüncü resim).
  4. Sağdaki JAR/Klasör Ekle'yi tıklayın. JAR/Klasöre Gözat açılır penceresini göreceksiniz (resim dört).
  5. Gidin ve ardından pi4j-core.jar öğesini seçin. Ardından JAR/Klasör Ekle'yi tıklayın. Ant Library Manager açılır penceresine geri döneceksiniz.
  6. Karınca Kitaplığı Yöneticisi açılır penceresinde Tamam'a tıklayın. NetBeans ana penceresine döneceksiniz.

Herhangi bir projede kullanılabilmesi için kitaplığı eklediniz. Şimdi kütüphaneyi projenize eklemelisiniz:

  1. Proje Özellikleri açılır penceresini açın (5. adıma bakın) ve Kitaplıklar kategorisini seçin (beşinci resim).
  2. Açılır pencerenin sağ tarafındaki Kitaplık Ekle'yi tıklayın. Kitaplık Ekle açılır penceresini göreceksiniz (resim altı).
  3. Kütüphaneye gidin ve onu seçin. Ardından Kitaplık Ekle'yi tıklayın. Proje Özellikleri açılır penceresini tekrar göreceksiniz. Kitaplık artık açılır penceredeki Derleme Zamanı Kitaplıkları listesinde görünür.
  4. Proje Özellikleri açılır penceresinde Tamam'a tıklayın. Ana pencereye döneceksiniz.

Programınızın kullanabilmesi için kitaplığı projenize eklediniz. Bir program için ihtiyacınız olan herhangi bir kitaplık için aynı işlem sırasını yapabilirsiniz.

Kitaplığa ihtiyacınız olan üç zaman vardır - derleme, oluşturma ve yürütme. Neyse ki, NetBeans ile kitaplığı yukarıda gösterildiği gibi eklemek her şeyi halleder. Bunu doğrulamak için, Pi4J'de I2C yeteneğini kullanmak için gereken mutlak minimumu yapan başka bir ana sınıf yarattım (yedi resim). Gösterilen herhangi bir hata olmaması, TestPi4J sınıfının derlendiği anlamına gelir. Çalıştır'ı tıklatarak başarıyla derler ve indirir; NetBeans, jar dosyasına ek olarak kitaplığı da indirir, böylece program yürütülür. İkincisini doğrulamak için 9. adımdaki tekniği kullanabilir ve ssh istemcisine aşağıdaki komutu girebilirsiniz (dist dizininden):

java -cp MyRemoteProg.jar myremoteprog. TestPi4J

NetBeans'in kitaplıkları nasıl ele aldığını anlamak öğreticidir. Projenizin dist dizinindeyken, dizinin içeriğini listeleyin (ls komutunu kullanın) ve bir lib alt dizini göreceksiniz. Bu dizinin içeriğini listeleyin ve benim örneğimde pi4j-core.jar olan global kütüphanede tanımlanan jar dosyasını göreceksiniz. Projeye eklediğiniz tüm kitaplıklar lib dizininde görünecek ve böylece proje jar dosyasındaki tüm programlara açık olacaktır.

Adım 11: Eğlenin

Raspberry Pi için çok verimli Java geliştirme elde etmek için bir yaklaşım tanımladım. Raspberry Pi, geniş bir proje yelpazesi için oldukça popüler bir teknolojidir. Java, Python'a göre performans avantajları sunan ve C/C++'a göre güvenlik avantajları sunan profesyonel düzeyde bir programlama dilidir. NetBeans, programcı üretkenliğini büyük ölçüde artıran profesyonel düzeyde bir IDE'dir.

Kombinasyonun oldukça çekici olduğunu düşünüyorum. Şimdi, projeleriniz için kombinasyonu kullanarak eğlenin.