Judul di atas tidak sepenuhnya benar untuk artikel berikut, Ketika kita membuat aplikasi desktop menggunakan java, maka file akhir yang dihasilan adalah file berekstensi *.jar, hal ini tidak sama seperti ketika kita melakukan kompilasi dengan native compiler yang akan menghasilakan file executable yang bisa langsung dieksekusi pada OS, java menggunakan Virtual Machine untuk menjalankannya, sehingga file jar tadi akan dijalankan diatas JVM.

Untuk menjalankan jar yang telah kita buat, adalah dengan menggunakan command prompt, yaitu dengan perintah java -jar app.jar atau javaw -jar app.jar

Atau dibuat batch file agar bisa langsung di klik, namun cara ini tetap akan menampilkan kotak command prompt, ketika aplikasi dijalankan.

Cara lain adalah dengan membuat file launcher yang akan mengeksekusi perintah untuk menjalankan file jar. Cara ini juga dipakai oleh eclipse, dimana eclipse merupakan java based, tetapi ketika running, yang di jalankan adalah eclipse.exe bukannya eclipse.jar

Untuk memulainya, tools yang dibutuhkan adalah NSIS, sebuah tools untuk membuat instalasi program yang berjalan pada windows. Salah satu feature yang ada pada tools ini adalah, dapat menjalankan perintah command prompt.
Tools ini berbasis script yang akan dicompile menjadi file executable.
Dengam trik ini, kita bisa membuat script untuk memanggil java, tanpa harus membuka command prompt.
Untuk memulai install terlebih dahulu NSIS

Scriptnya adalah sebagai berikut, untuk selanjutnya dapat dicompile menggunakan NSIS Tools.

;————————————————–
; NSIS Script to Launch Java Application
; (c)2009, Heru Prayugo
;————————————————–
Name “Java Launcher” ;Application Name
;Icon “Paste.ico” ;icon file
OutFile “DocumentEditor.exe” ;Output Executable File

;Properties To generate
VIAddVersionKey “ProductName” “DocumentEditor”
VIAddVersionKey “Comments” “A Test Java Launcher Application”
VIAddVersionKey “CompanyName” “Rux System “
VIAddVersionKey “FileVersion” “1.0.0″
VIAddVersionKey “FileDescription” “Sample Java Launcher”
VIAddVersionKey “LegalCopyright” “(c) 2009, Rux System”
VIProductVersion “1.0.0.1″

;jar file to exec in exe file
!define JarFile “DocumentEditor.jar”

;javaw.exe to execute jar file
!define JavaExe “javaw.exe”

RequestExecutionLevel user
SilentInstall silent
AutoCloseWindow true
ShowInstDetails nevershow

!include “FileFunc.nsh”
!insertmacro GetFileVersion
!insertmacro GetParameters
!include “WordFunc.nsh”
!insertmacro VersionCompare

Section “main”
Call GetJRE
Pop $R0
StrCpy $0 ‘”$R0″ -jar “${JarFile}”‘
SetOutPath $EXEDIR
Exec $0
SectionEnd

Function GetJRE
Push $R0
ClearErrors
StrCpy $R0 “$EXEDIR\jre6\bin\${JavaExe}” ;JRE harus dicopy ke folder yang sama
IfFileExists $R0 JreFound ;skip jika JRE tidak ditemukan, lalu munculkan messagebox
MessageBox MB_OK “Untuk menjalanan applikasi, anda harus mengcopy folder jre ke folder ini”
JreFound:
Exch $R0
FunctionEnd

Download Resource

Melakukan komunikasi dengan protokol serial rs232 ataupun parallel port mungkin sudah familiar di aplikasikan menggunakan mikrokontroller avr. Protokol lain yang sudah sangat populer adalah usb(universeal serial bus). Akantetapi untuk mengaplikasikannya tidak semudah 2 protokol sebelumnya, memang sudah ada seri avr yang sudah meng-include usb on chip, akan tetapi dengan menggunakan seri atmega atau attiny sudah bisa dilakukan komunikasi dengan computer melalui port usb ini.
Project ini tidak akan membahas secara detail karakteristik protokol ini, akan tetapi lebih high level dengan library dari v-usb, akan dibuat pengontrolan 8 buah led yang dihubungkan dengan port pada mikrokontroller. Pada sisi host (windows) diperlukan driver , agar device yang dibuat dapat dikenali dan berjalan dengan baik, serta sebuah program .exe yang akan berkomunikasi dengan program yang ada di mikrokontroller. Hasil akhir yang diinginkan adalah host bisa mengiriim nilai 1 Byte ke PORT yang terhubung dengan 8 buah led, sehingga led akan hidup dan mati sesuai dengan nilai yang dikirimkan, serta mikrokontroller dapat mengirim status led kepada host.
Project ini merupakan basic interfacing usb menggunakan avr, dan dapat dikembangkan untuk komunikasi yang lebih advance lainnya.

Rangkaiannya adalah sebagai berikut:

usbm8535

Komponen yang diperlukan adalah:
IC1=ATMEGA8535
R1=R2=68Ohm
R3=1K5
R4=1M
R5=10K
D1=D2=3V6
C1=C2=27pF
Q1=12Mhz

referensi:
http://www.obdev.at

Download Source Code

Dalam kesempatan kali ini saya akan coba jelaskan cara penggunaan WinAVR (baca: ‘whenever’) di dalam platform system operasi WindowxXP. Untuk pertama kali adalah instalasi WinAVR, dalam tutorial ini digunakan WinAVR-20081205. Adapun path instalasi diletakan di drive C:\ untuk kesamaan.

WinAVR sendiri sudah memiliki editor bawaan yaitu Programmers Notepad, dalam versi WinAVR ini adalah PN versi 2.0.8. Dalam tutorial ini digunakan PN untuk editing code program.

Memulai project baru

Untuk memulai project dapat dimulai dengan membuka PN.

p13

Langkah selanjutnya menambahkan project group baru dengan cara :

File > new Project Group

Lalu tambahkan project baru dalam group ini dengan cara :

File > new Project

p21

Arahkan folder project ke suatu folder, dalam tutorial ini project diarahkan ke path D:\heru\mikro\project

Tambahkan file baru dengan mengetik beberapa baris program yang nantinya akan kita compile.

#include <avr/io.h>

void main(){

}

Save dengan nama hello.c. Kemudian tambahkan file ini ke dalam project dengan mengkik kanan pada project lalu add file.

Satu file lagi yang perlu kita buat adalah makefile. Makefile ini nantinya dipergunakan oleh WinAVR dalam proses kompilasi, fungsinya untuk mendefenisikan jenis mikrokontroller apa yang kita gunakan, frekuensi clock dan beberapa defenisi lainnya yang pada bagian lain akan dijelaskan.

MakeFile

Untuk proses pembuatan makefile, WinAVR sudah menambahkan tools tambahan yaitu MakeFile yang memiliki icon seperti lampu ajaib aladin. Untuk membuatnya dapat langsung membuka tools tersebut “MakeFile [WinAVR]” pada sub program WinAVR-20081205 pada Start menu.

p31


Dengan menggunakan tools ini kita dimudahkan dalam malakukan editing code makefile. Untuk memulainya dapat diakukan dengan melakukan settingan seperti dibawah ini :

MCU Type > AT mega >ATmega16

Output Format > ihex

Optimization Level > s

Debug Format > Avr-ext-coff

C Standard Level > gnu99

Programmer > pony-stk200

Port > lpt1

Lalu save dan arahkan ke dalam folder project yang telah ada, untuk nama filenya dapat diabaikan (secara default akan diberi nama Makefile , tanpa extensi). Lalu tambahkan makefile yang telah dibuat pada project yang telah ada. Sehingga nantinya pada project akan di dapati dua anggota file, pertama adalah hello.c dan yang kedua adalah makefile.

Sejauh ini persiapan untuk kompilasi talah dilakukan semuanya.

Compile Program

Untuk melakukan kompilasi, dapat dilakukan dengan :

Tool > [WinAVR] Make All

Pada menu yang terdapt pada menu WinAVR

Setelah decompile akan muncul pesan error sebagai berikut pada jendela output:

> “make.exe” all

——– begin ——–

avr-gcc (WinAVR 20081205) 4.3.2

Copyright (C) 2008 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

make.exe: *** No rule to make target `main.elf’, needed by `elf’. Stop.

> Process Exit Code: 2

> Time Taken: 00:01

Untuk memperbaikinya dapat dilakukan editing pada makefile

Pada baris :

# Target file name (without extension).

TARGET = main

Baris kedua dapat diganti dengan

TARGET = hello

Baris tersebut menjelaskan kepada winavr file mana yang akan kita compile, karena kita telah membuat file hello.c sebagai file default yang akan decompile, maka kita harus mengarahkan winavr agar mencompile file hello.c dengan mengubahnya seperi diatas.Setelah melakukan proses kompilsi lagi nantinya akan didapati output seperti dibawah ini :

> “make.exe” all

——– begin ——–

avr-gcc (WinAVR 20081205) 4.3.2

Copyright (C) 2008 Free Software Foundation, Inc.

This is free software; see the source for copying conditions. There is NO

warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Size before:

AVR Memory Usage

—————-

Device: atmega16

Program: 152 bytes (0.9% Full)

(.text + .data + .bootloader)

Data: 0 bytes (0.0% Full)

(.data + .bss + .noinit)

Converting to AVR Extended COFF: hello.cof

avr-objcopy –debugging –change-section-address .data-0×800000 –change-section-address .bss-0×800000 –change-section-address .noinit-0×800000 –change-section-address .eeprom-0×810000 -O coff-ext-avr hello.elf hello.cof

Discarding local symbol outside any compilation unit: .do_copy_data_start

Discarding local symbol outside any compilation unit: .do_copy_data_loop

Discarding local symbol outside any compilation unit: .do_clear_bss_start

Discarding local symbol outside any compilation unit: .do_clear_bss_loop

Warning: no “data” section found in output file

avr-objcopy: –change-section-vma .eeprom+0xff7f0000 never used

avr-objcopy: –change-section-lma .eeprom+0xff7f0000 never used

avr-objcopy: –change-section-vma .noinit+0xff800000 never used

avr-objcopy: –change-section-lma .noinit+0xff800000 never used

avr-objcopy: –change-section-vma .bss+0xff800000 never used

avr-objcopy: –change-section-lma .bss+0xff800000 never used

avr-objcopy: –change-section-vma .data+0xff800000 never used

avr-objcopy: –change-section-lma .data+0xff800000 never used

Size after:

AVR Memory Usage

—————-

Device: atmega16

Program: 152 bytes (0.9% Full)

(.text + .data + .bootloader)

Data: 0 bytes (0.0% Full)

(.data + .bss + .noinit)

——– end ——–

> Process Exit Code: 0

> Time Taken: 00:02

Hal ini menandakan bahwa kita talah berhasil melakukan kompilasi program. Adapun untuk selanjutnya, proses debugging juga akan dipermudah dengan menggunakan PN, karena PN akan mencapture pesan hasil kompilasi, sehingga ketika ada error akan ketahuan dengan cepat dan dapat dilakukan perbaikan dengan segera,