Java i Raspberry - Integracja z NetBeans

W poniższym poście przedstawię sposób integracji NetBeans zainstalowanym na naszym Windowsie z RaspberryPi. No może nie tyle dosłownej integracji co po prostu sposobu aby to co skompilujemy na pc, trafiało od razu do naszego raspberry. Ułatwiając sobie tym sposobem niewdzięczne zadanie przerzucania plików.

Żeby oszczędzić sobie czasu część kroków będzie przenosiła do poradników gdzie dane zagadnienia są już opisane.
Co będziemy potrzebowali nim zaczniemy zabawę:
- router do którego podłączymy naszego pc i raspberry(warto tutaj przypisać jej statyczny adres ip)
- raspberry z połączeniem do sieci
- komputer pc z netbeans

0. Instalacja systemu na malinę:
instalacja-systemu
1. Połączenie przez ssh:
jeśli nasza malina jest widoczna w sieci lokalnej, to tak naprawdę nie potrzebujemy podłączonego do raspbery ani monitora ani klawiatury czy myszki. Wszystko można zrobić od razu przez klienta ssh.

2. Uruchomienie NetBeans i stworzenie nowego projektu Java.

3. Wszystko opisane jest tutaj(integrating_netbeans_for_raspberry_pi) patrz podpunkt 5.
 W skrócie:
Gdy utworzyliśmy projekt mamy okno z 3 zakładkami, takie jak poniżej:


klikamy na zakładkę "Files" i otwieramy plik build.xml, tam dopisujemy pomiędzy zakładką <project> a </project> poniższy tekst:

<target name="-post-jar">
        <echo level="info" message="Copying dist directory to remote Pi"/>
            <exec executable="L:\pscp.exe" dir="${basedir}">
            <arg line="-r"/>
            <arg line="-pw naszehasło"/>        
            <arg value="dist"/>
            <arg value="pi@192.168.0.100:javaPi"/>
        </exec>

    </target>

w którym mamy informacje dotyczące konfiguracji pliku. Więc po kolei:
 <exec executable="L:\pscp.exe" dir="${basedir}"> - jest to lokalizacja programu który wykorzystamy do synchronizacji. Pobieramy go z tej samej strony co program do połączenia ssh putty: pscp.exe i umieszczamy gdzieś na dysku. U mnie jest to partycja L:.
  <arg line="-r"/> - dzięki tej opcji skopiuje się nam cała struktura katalogów, czyl iwszystkie pliki w podfolderach i ich foldery.
 <arg line="-pw naszehasło"/>  - tutaj informujemy że program  ma podać hasło automatycznie a jako kolejny argument podajemy naszehaslo, takie same jakie używamy do logowania się na naszą maline
<arg value="dist"/> - to jest folder który kopiujemy
 <arg value="pi@192.168.0.100:javaPi"/> - a tutaj podajemy dane według następującego schematu user@adresMaliny:folder

4. Więc już konfiguracje po stronie netbeans mamy zakończoną ale musimy jeszcze zmienić uprawnienia dostępu do naszego zdalnego folderu na raspberry.
W tym celu poprzez ssh wpisujemy następującą komende:

javaPi/ chmod 1777

Dzięki temu zmieniamy uprawnienia tego folderu, pozwalające na zapis i edycje zawartych w nim plików.
javaPi to oczywiście folder do którego będziemy wrzucać nasz projekt.

5. Clean and Rebuild - przechodzimy na zakładkę naszego projektu i klikamy prawym p.m na naszym projekcie a następnie wybieramy powyższą opcję i jeśli wszystko przebiegnie po naszej myśli powinniśmy otrzymać coś takiego w logu:

ant -f "L:\\Java to Raspberry\\PiZone" -Dnb.internal.action.name=rebuild clean jar
init:
deps-clean:
Updating property file: L:\Java to Raspberry\PiZone\build\built-clean.properties
Deleting directory L:\Java to Raspberry\PiZone\build
clean:
init:
deps-jar:
Created dir: L:\Java to Raspberry\PiZone\build
Updating property file: L:\Java to Raspberry\PiZone\build\built-jar.properties
Created dir: L:\Java to Raspberry\PiZone\build\classes
Created dir: L:\Java to Raspberry\PiZone\build\empty
Created dir: L:\Java to Raspberry\PiZone\build\generated-sources\ap-source-output
Compiling 2 source files to L:\Java to Raspberry\PiZone\build\classes
compile:
Created dir: L:\Java to Raspberry\PiZone\dist
Copying 1 file to L:\Java to Raspberry\PiZone\build
Not copying library C:\Users\Radomiej\Downloads\pi4j-0.0.5\pi4j-0.0.5\lib , it's a directory.
Nothing to copy.
Building jar: L:\Java to Raspberry\PiZone\dist\PiZone.jar
To run this application from the command line without Ant, try:
java -jar "L:\Java to Raspberry\PiZone\dist\PiZone.jar"
Copying dist directory to remote Pi

PiZone.jar                | 4 kB |   4.0 kB/s | ETA: 00:00:00 |  75%PiZone.jar                | 5 kB |   5.3 kB/s | ETA: 00:00:00 | 100%
README.TXT                | 1 kB |   1.3 kB/s | ETA: 00:00:00 | 100%
jar:
BUILD SUCCESSFUL (total time: 2 seconds)

6. Uruchamiamy projekt na malinie:

java -jar javaPi/dist/PiZone.jar

Oczywiście w ten sposób uruchomimy jedynie konsolowe wersję naszych programów jeśli chcemy uruchomić wersję graficzne to polecam zapoznać się z tymi dwoma sposobami:
zdalny-pulpit-instalacja-vnc
raspberry-pi-xming-x11/