Masalah umum
Javacomm dan RXTX memiliki beberapa hal yang berbeda saat menginstal. Sangat disarankan untuk menginstal sedikit instalasi sesuai dengan instruksi instalasi. Jika instruksi instalasi memerlukan file jar atau pustaka bersama harus berada di bawah folder tertentu, yang berarti perlu dianggap serius. Jika file atau perangkat tertentu perlu memiliki kepemilikan atau akses yang tepat, itu juga berarti bahwa itu perlu ditangani dengan serius. Banyak masalah instalasi disebabkan oleh tidak sesuai dengan persyaratan instruksi pemasangan.
Perlu dicatat bahwa beberapa versi Javacomm akan memiliki dua instruksi pemasangan. Satu digunakan untuk Java 1.2 dan yang lebih baru, satu untuk versi Java 1.1. Menggunakan instruksi instalasi yang salah akan menyebabkan hasil instalasi yang tidak dapat dikerjakan. Di sisi lain, beberapa versi/komponen/paket TXTX akan berisi deskripsi yang tidak lengkap. Dalam hal ini, perlu untuk mendapatkan kode sumber yang diterbitkan oleh RXTX, yang berisi instruksi instalasi lengkap.
Selain itu, perlu dicatat bahwa program instalasi JDK Windows akan berisi tiga mesin virtual Java, sehingga akan ada tiga folder yang diperluas.
Terlebih lagi, bahkan JRE keempat, yang ada dalam struktur direktori/Windows. Javacomm harus dipasang di JDK dan semua JRE publik sebagai ekstensi.
WebStart
Javacomm
Masalah umum tentang Javacomm dan RXTX adalah bahwa mereka tidak mendukung instalasi melalui Java Webstart: Javacomm yang terkenal adalah karena Anda perlu memanggil file yang disebut javax.com.properties ke direktori JDK LIB, dan ini tidak dapat melalui Java Webstart selesai. Sangat membuat frustrasi bahwa kebutuhan untuk file ini adalah beberapa desain yang tidak perlu di Javacomm, dan para desainer Javacomm dapat dengan mudah menghindari ini. Sun dengan keras kepala menolak kesalahan, dan mereka menekankan bahwa mekanisme ini sangat penting. Mereka berbicara omong kosong, terutama ketika mereka menyebutkan Javacomm, karena Java memiliki arsitektur penyedia layanan yang berspesialisasi dalam niat seperti itu untuk waktu yang lama.
Hanya ada satu baris dalam konten file atribut ini, yang menyediakan nama kelas Java yang didorong lokal.
driver = com.sun.win.win32driver
Berikut ini adalah teknik yang dapat menggunakan Javacomm melalui web mulai mengabaikan file atribut yang menyakiti otak. Tetapi memiliki cacat yang serius dan mungkin gagal saat menggunakan Javacomm yang lebih baru -jika Sun akan membuat versi baru.
Pertama, matikan manajer keamanan. Beberapa programmer bodoh Sun merasa bahwa keberadaan file javax.comm.properties yang mengerikan itu keren berulang kali, terutama setelah pertama kali dimuat. Ini hanya memeriksa apakah ada file tanpa alasan lain.
System.SetsecurityManager (null);
Kemudian, ketika Javacomm API awalnya dimulai, secara manual menginisialisasi pengemudi.
String drivename = "com.sun.comm.win32driver";
Rxtx
RXTX perlu mengubah kepemilikan dan mengakses hak perangkat serial pada beberapa platform. Ini juga merupakan hal yang tidak dapat dilakukan melalui WebStart.
Ketika program dimulai, Anda harus meminta pengguna untuk melakukan pengaturan yang diperlukan sebagai pengguna super. Secara khusus, RXTX memiliki algoritma pencocokan mode untuk memverifikasi nama peralatan serial "legal". Ketika seseorang ingin menggunakan perangkat non-standar, seperti konverter USB-ke-serial, ini sering mengacaukan banyak hal. Mekanisme ini dapat diblokir oleh atribut sistem. Untuk detailnya, lihat instruksi instalasi RXTX.
Javacomm API
perkenalan
API komunikasi serial resmi Java adalah Javacomm API. API ini bukan bagian dari versi standar Java 2, sehingga implementasi API ini perlu diunduh secara terpisah. Sayangnya, Javacomm tidak mendapatkan cukup perhatian pada Sun, dan waktu pemeliharaan yang sebenarnya tidak terlalu lama. Sun baru saja memperbaiki beberapa serangga yang tidak penting sesekali, tetapi tidak melakukan perawatan penting yang telah lama kedaluwarsa.
Bagian ini menjelaskan operasi dasar API Javacomm. Kode sumber yang disediakan disederhanakan untuk menampilkan fokus, dan perlu ditingkatkan dalam aplikasi praktis.
Kode sumber bab ini bukan satu -satunya kode contoh yang tersedia. Banyak contoh berisi unduhan Javacomm. Contoh -contoh ini mencakup lebih banyak informasi tentang cara menggunakannya daripada dokumen API -nya. Sayangnya, Sun tidak memiliki tutorial nyata atau beberapa dokumen penjelasan. Oleh karena itu, untuk memahami mekanisme API ini, mempelajari contoh -contoh ini sepadan, dan Anda masih perlu mempelajari dokumen API ini. Tetapi cara terbaik adalah mempelajari contoh -contoh ini dan menggunakannya. Karena kurangnya aplikasi yang mudah digunakan dan pemahaman tentang model pemrograman API ini, API biasanya diserang. Dibandingkan dengan reputasi dan fungsinya, API ini lebih baik, tapi itu adil.
API menggunakan mekanisme panggilan balik untuk memberi tahu data baru programmer. Ini juga merupakan ide yang baik untuk mempelajari mekanisme ini, daripada mengandalkan pelabuhan penyelidikan. Tidak seperti antarmuka callback lainnya di Java (seperti: di antarmuka grafis), antarmuka ini hanya memungkinkan satu monitor untuk mendengarkan. Jika banyak pendengar meminta beberapa insiden, perangkat pemantauan utama harus diimplementasikan dengan mendistribusikan informasi kepada pendengar sekunder lainnya.
Unduh dan Instalasi
unduh
Sun's Javacomm Halaman halaman web menunjuk ke alamat unduhan. Di bawah alamat ini, Sun saat ini (2007) menyediakan versi Javacom 3.0 yang mendukung Solaris/SPARC, Solaris/X86 telah Linux X86. Unduhan memerlukan akun perusahaan Sun. Halaman unduhan menyediakan tautan ke halaman pendaftaran. Tujuan pendaftaran tidak jelas. Saat mendaftar, pengguna dapat mengunduh JDK dan JRES, tetapi untuk Javacomm yang hampir sepele ini, Sun Company mengutip ketentuan hukum dan pembatasan pemerintah pada distribusi perangkat lunak dan ekspor.
Pejabat itu tidak lagi menyediakan versi Windows Javacomm, dan Sun telah melanggar strategi kematian produk mereka sendiri -tidak dapat diunduh dalam produk Java. Tetapi Anda masih dapat mengunduh versi Windows 2.0 dari ini (Javacom 2.0).
Memasang
Instalasi dengan instruksi instalasi dengan unduhan. Beberapa versi Javacomm 2.0 akan mencakup dua instruksi instalasi. Perbedaan yang paling jelas antara kedua deskripsi ini adalah bahwa yang salah digunakan dalam lingkungan Java1.1 kuno, dan yang cocok untuk Java 1.2 (JDK1.2.html) benar.
Pengguna Windows mungkin tidak menyadari bahwa mereka telah menginstal salinan VM yang sama di tempat yang berbeda (biasanya 3 hingga 4). Beberapa aplikasi IDE dan Java juga dapat membawa JRE/JDK pribadi mereka sendiri. Oleh karena itu, Javacomm perlu diinstal berulang kali ke VM ini (JDK dan JRE) sehingga untuk mengembangkan dan menjalankan aplikasi serial.
IDE memiliki cara IDE yang representatif untuk mempelajari perpustakaan baru (kelas dan dokumen). Biasanya perpustakaan yang Javacomm tidak hanya perlu diidentifikasi oleh IDE, tetapi juga setiap proyek menggunakan perpustakaan juga harus diidentifikasi. Membaca dokumen IDE, Anda harus memperhatikan versi lama Javacomm 2.0 lama dan dokumentasi API Javadoc menggunakan tata letak Java 1.0 Java Doc. Beberapa IDE modern tidak lagi mengetahui struktur ini dan tidak dapat mengintegrasikan dokumen JavaComm2.0 ke dalam sistem bantuan mereka. Dalam hal ini, browser eksternal diperlukan untuk membaca dokumen (kegiatan yang disarankan)
Setelah perangkat lunak diinstal, disarankan untuk menguji sampel dan direktori Javadoc. Masuk akal untuk membangun dan menjalankan aplikasi sampel untuk mengonfirmasi apakah instalasi itu benar. Program sampel biasanya memerlukan beberapa penyesuaian kecil untuk dijalankan pada platform khusus (seperti pengidentifikasi port COM yang menulis ulang kode keras). Saat menjalankan program sampel, yang terbaik adalah memiliki beberapa perangkat keras serial.
Serial_programming: Koneksi RS-232 dan Serial_Programming: Modem dan AT Commands memberikan beberapa informasi tentang cara membangun lingkungan pengembangan aplikasi serial.
Temukan port serial yang diharapkan
Tiga hal pertama yang harus dilakukan saat menggunakan pemrograman serial Javacomm
Logo pelabuhan enumerasi dan ekspektasi seleksi diselesaikan dalam siklus yang sama:
Impor Javax.Comm.*; Sebagai "com1" ... "comx" juga, dan bukan // dengan nama perangkat Unix mereka "/dev/tty ...". Alih -alih membuat pengguna dapat dikonfigurasi.//string WantedPortName = "/dev/ttya"; Identifier if // (a) Ini menunjukkan port serial (bukan paralel), dan // (b) cocok dengan nama desain.//CommportIdentifier portid = null; CommptionDifier PID = (CommptionIdifier) PortableTifiers.NextElement (); ) {System.err.println ("tidak dapat menemukan port serial" + wantedportname); Daftar logo serial yang dapat diakses dalam driver yang terkait dengan platform tertentu yang terikat. Daftar ini sebenarnya tidak dapat dikonfigurasi melalui Javacomm. Metode commptidifier.addportname () menyesatkan, karena kelas pengemudi terkait dengan platform, dan implementasinya bukan bagian dari API publik. Mengandalkan driver, daftar port ini dapat dikonfigurasi/diperluas di driver. Oleh karena itu, jika Javacomm tidak menemukan port tertentu, beberapa perubahan pada pengemudi terkadang akan membantu. Setelah pengidentifikasi port tertentu ditemukan, Anda dapat menggunakannya untuk mendapatkan port yang diharapkan: ////////////////////////// 0 Gunakan port pengidentifikasi port untuk akun // port serialport = null; E);
Port serial inisialisasi
Inisialisasi port serial sangat intuitif. Anda dapat mengatur parameter komunikasi (laju potter, bit data, bit stop, dan verifikasi boneka) satu per satu.
Sebagai bagian dari inisialisasi, aliran komunikasi input dan output dapat dikonfigurasi dalam contoh berikut.
Impor java.io.*; ; null; // untuk tujuan demo saja. Tenput Stream: Write- Only "); Sistem Linux Baru Mengandalkan Unicode, sehingga mungkin diperlukan untuk // Menentukan skema penyandian yang akan digunakan.), Atau ISO Latin 1 (8 bit // komunikasi), karena kemungkinan tidak ada tidak ada Model di luarnya menerima // unicode untuk komitmennya. Terjadi di sini // PerformReadWriteCode (); Port.
Transmisi data sederhana cukup menulis data
Menulis data ke dalam port serial sesederhana Java IO dasar. Tetapi masih ada beberapa tindakan pencegahan saat Anda menggunakan protokol AT Hayes:
CLIPBOARD
Untuk melakukan:
Jelaskan cara mencampur input dan output biner dan karakter dalam aliran yang sama
Ubah program sampel untuk menggunakan aliran
// Tulis ke output os.print ("at"); os.print ("/r/n"); Perintah yang Anda kirimkan padanya.Pembacaan Data Sederhana (Rotasi)
Jika Anda menggunakan operasi penulisan dengan benar (seperti dijelaskan di atas), Anda hanya memerlukan perintah sederhana.
// Baca responseString response = is.readline ();
Pertanyaan Bacaan dan Menulis Sederhana
Bacaan dan penulisan serial sederhana yang ditunjukkan pada bagian sebelumnya memiliki cacat yang sangat serius. Semua operasi dilakukan dengan memblokir I/O. Ini berarti bahwa ketika tidak ada data yang dapat dibaca, atau buffer output penuh (perangkat tidak dapat menerima lebih banyak data):
Metode Membaca dan Menulis (dalam contoh sebelumnya adalah OS.Print () atau Is.readline ()) tidak akan kembali, menyebabkan aplikasi ditangguhkan. Lebih tepatnya, utas membaca dan menulis diblokir. Jika utas itu adalah utas utama aplikasi, aplikasi akan berhenti sampai kondisi pemblokiran dirilis (yaitu, data yang dapat dibaca untuk dijangkau atau perangkat diperoleh kembali).
Kecuali aplikasi ini paling primitif, program diblokir. Misalnya, setidaknya itu harus memungkinkan pengguna untuk membatalkan operasi komunikasi. Ini membutuhkan penggunaan I/O non -blocking atau I/O asinkron. Namun, Javacomm didasarkan pada sistem I/O standar (InputStream, OutputStream), tetapi dapat menggunakan teknik deformasi yang ditampilkan nanti.
"Teknik deformasi" yang disebut SO adalah dukungan terbatas yang diberikan oleh Javacomm untuk I/O asinkron melalui mekanisme pemberitahuan insiden. Namun, solusi umum untuk mewujudkan I/O yang tidak memblokir di Java untuk memblokir I/O adalah utas. Solusi ini untuk operasi penulisan port serial praktis dan layak.
Operasi membaca juga harus diproses di utas terpisah, tetapi tidak perlu menggunakan mekanisme pemberitahuan insiden Javacomm. Meringkaskan:
Baca operasi dan gunakan pemberitahuan acara dan/atau utas terpisah;
Gunakan utas terpisah untuk menulis operasi, dan mekanisme pemberitahuan acara dapat dipilih.
Bagian selanjutnya akan memperkenalkan beberapa detail lainnya.
Pendahuluan Komunikasi Serial Event Drive
Javacomm API menyediakan mekanisme pemberitahuan peristiwa untuk mengatasi masalah yang disebabkan oleh pemblokiran I/O. Tetapi mekanisme ini juga bermasalah dalam metode Sun yang khas ini.
Pada prinsipnya, aplikasi dapat mendaftarkan monitor acara ke port serial tertentu untuk menerima pemberitahuan untuk menerima acara penting di port ini. Dua peristiwa membaca dan menulis data yang paling menarik adalah
javax.comm.serialportevent.data_vailable dan javax.comm.serialportEvent.output_buffer_empty.
Tapi ini juga membawa dua pertanyaan:
Sebelum melakukan diskusi terperinci, bagian berikutnya akan menunjukkan metode utama menerapkan dan mendaftarkan prosesor acara serial. Ingatlah bahwa hanya ada satu prosesor acara di pelabuhan serial, dan itu harus berurusan dengan semua acara yang mungkin.
Atur prosesor acara serial
Impor Javax.Comm. Informasi * tentang komunikasi, misalnya ketika komunikasi tertentu * perlu diikuti. METODE. Event.getEventType ()) {case SerialportEvent.output_empty: outputBuferEmply (Event); Break; Break; / ** * Tangani output Events events. / Mengimplementasikan data WU di sini}/ ** * Tangani acara yang tersedia data. Setelah pendengar diimplementasikan, dapat digunakan untuk memantau insiden serial tertentu. Untuk melakukannya, Anda perlu menambahkan contoh mendengarkan port serial. Selain itu, penerimaan masing -masing jenis acara memerlukan aplikasi terpisah.
Serialport Port = ...; Gambar Antarmuka ServicEventListener // Orang akan menelepon ///port.addeventristener (ini); E); ;
Penulisan Data
Penulisan data dengan pemisahan terpisah hanya satu tujuan: untuk menghindari seluruh blok aplikasi terkunci karena port serial tidak siap untuk menulis data.
Realisasi buffer cincin yang sederhana dan aman
Gunakan utas yang terlepas dari garis program utama untuk menulis operasi, menunjukkan bahwa data yang perlu ditulis dengan cara tertentu diserahkan ke utas penulisan dari utas aplikasi utama (utas utama). Ini dapat menggunakan buffer acara asinkron bersama, seperti array byte. Selain itu, program utama juga membutuhkan beberapa cara untuk menentukan apakah data atau buffer data dapat ditulis dalam buffer data. Jika buffer data penuh, ini menunjukkan bahwa port serial tidak siap untuk menulis operasi, dan data yang akan menjadi output antrian. Program utama perlu menanyakan ruang bebas baru yang tersedia di buffer data bersama. Namun, dalam celah antara program utama, Anda dapat melakukan beberapa hal lain, seperti memperbarui antarmuka pengguna (GUI), memberikan prompt perintah yang dapat keluar dari data, dan sebagainya.
Pada pandangan pertama, PipedInputStream/PipedoutputStream adalah ide yang bagus untuk komunikasi ini. Tetapi jika aliran pipa benar -benar berguna, maka matahari bukanlah Sun. Jika PipedoutStream yang sesuai tidak dibersihkan dalam waktu, PipedInputStream akan memblokir, yang akan memblokir utas aplikasi. Bahkan jika Anda menggunakan utas independen, Anda tidak dapat menghindarinya. Java.nio.pipe juga memiliki masalah yang sama dengan ini. Obstruksi terkait dengan platform. Tidak terlalu baik untuk mengubah I/O tradisional menggunakan javacomm menjadi nio.
Area buffer cincin sinkron yang sangat sederhana digunakan dalam artikel ini untuk transmisi data utas. Aplikasi di dunia nyata cenderung menggunakan buffer yang lebih kompleks. Misalnya, realisasi dunia nyata membutuhkan buffer operasi dari perspektif aliran input dan output.
Buffer cincin seperti itu tidak istimewa, dan tidak ada atribut khusus dalam pemrosesan utas. Ini hanya struktur data sederhana yang digunakan di sini untuk menyediakan buffer data. Buffer telah diimplementasikan di sini untuk memastikan bahwa mengakses struktur data adalah keamanan utas.
/*** Buffer RAING yang disinkronkan.*Cocok untuk menyerahkan Overda dari satu utas ke utas lainnya. ** Ukuran buffer ** / ukuran int yang dilindungi; Ukuran 1K. clear ();} / ** * Kosongkan konten buffer. ditimpa selama operasi normal. , Ini tidak valid saat data dibaca dari * buffer atau menulis buffer. Int data () {return start <= end? Terikat * itu sementara waktu. Data sebagai yang dimiliki. Param Data Array Holding Data yang akan ditulis * @param off Data dalam array * @param n Jumlah data untuk ditulis, mulai dari. , int n) {if (n <= 0) Return 0; ) -end); , END> = Mulai? } / ** * Baca data sebanyak yang dimiliki dari buffer. Panjang);} /** * Baca sebanyak mungkin data dari buffer. */ int read (data byte [], tutup kantor int: 0 = <= off <data.length; lempar pengecualian jika tidak int i = math.min (tetap, (end <start? buffer.length: end) -tartart ); 0;} i = Math.Min (tetap, end> = 0: end); i;} return n -remain;}}}}}Dengan menggunakan buffer cincin ini, Anda sekarang dapat mengirimkan data dari satu utas ke utas lain. Tentu saja, utas lainnya adalah metode yang aman dan tidak memblokir. Titik kunci di sini adalah bahwa ketika buffer penuh atau buffer kosong, baca dan tulis data tidak akan menyebabkan penyumbatan.
Menurut garis besar demonstrasi prosesor acara dari demonstrasi bagian dalam "Create Serial Enterprise Processor", Anda dapat menggunakan buffer cincin bersama yang diperkenalkan dalam "Buffer Cincin Aman Utas Sederhana" untuk mendukung acara output_buffer_empty. Tidak semua implementasi Javacomm mendukung acara ini, jadi kode ini mungkin tidak pernah dipanggil. Tetapi jika bisa, itu adalah bagian dari memastikan throughput data terbaik, karena dapat membuat port serial dalam keadaan kemalasan untuk waktu yang lama.
Garis monitor acara perlu menyediakan metode outputBuffREMPTY ().
RingBuffer Databuffer = ...; outputBuff di (acara serialportEvent) {}Contoh berikut mengasumsikan bahwa tujuan data adalah file. Ketika data tiba, itu akan dihapus dari port serial dan ditulis ke dalam file tujuan. Ini hanya tampilan yang disempurnakan, karena sebenarnya Anda perlu memeriksa logo EOF data untuk mengatur modem (biasanya disebut "kucing") sebagai mode perintah.
Impor Javax.Comm. *; ** * Tangani Acara Serial. SerialportEvent.Data_Available: // // Pindahkan semua data yang tersedia saat ini ke file // coba {int c ruang ((c = is.read ())! Catch (IoException Ex) {...} Break; );}
Ubah Kontrol Demodulator
Javacomm terutama khawatir tentang pemrosesan serial dan transmisi data pada port serial. Itu tidak memahami atau memberikan dukungan untuk protokol tingkat tinggi, seperti modulasi Hayes dan instruksi demodulasi biasanya digunakan untuk mengontrol kucing tingkat pelanggan. Ini bukan tugas Javacomm, juga bukan bug.
Seperti perangkat serial khusus lainnya, jika Anda ingin mengontrol kucing dengan Javacomm, Anda harus menulis kode yang diperlukan di Javacomm. Halaman "Modem Hayes-Commposition dan AT Commands" memberikan informasi dasar yang diperlukan untuk memproses kucing Hayes.
Beberapa sistem operasi, seperti Windows atau perintah Kontrol Linux untuk mengonfigurasi jenis khusus atau merek perintah kontrol kucing, memberikan lebih banyak atau lebih sedikit standar. Misalnya, "pengemudi" kucing Windows biasanya hanya pintu masuk yang terdaftar, menggambarkan masing -masing kucing (driver nyata adalah driver modulasi serial universal). Javacomm tidak dapat memperoleh data spesifik dari sistem operasi tersebut. Oleh karena itu, baik alat Java terpisah harus disediakan untuk memungkinkan pengguna mengkonfigurasi aplikasi untuk menggunakan masing -masing kucing, atau menambahkan beberapa kode platform (lokal) yang sesuai.
Rxtx
Ikhtisar dan Versi
Karena Sun tidak memberikan implementasi referensi Javacom untuk Linux, orang telah mengembangkan RXTX untuk Java dan Linux. Kemudian, RXTX ditransplantasikan ke platform lain. Versi terbaru RXTX dikenal menjalankan lebih dari 100 platform, termasuk Linux, Windows, Mac OS, Solaris, dan sistem operasi lainnya.
RXTX dapat digunakan secara independen dari Javacomm API, atau juga dapat digunakan sebagai layanan API Java Commum yang disebut SO. Jika yang terakhir menggunakan paket pengemasan yang disebut JCL. JCL dan RXTX biasanya dikemas dengan Linux/Java, atau JCL sepenuhnya terintegrasi dengan kode. Oleh karena itu, sebelum mengunduhnya satu per satu, lihat CD versi distribusi Linux dari CD.
Karena dukungan Sun yang terbatas dan dokumentasi Javacomm yang tidak pantas, ia meninggalkan Javacomm API dan berbalik langsung untuk menggunakan RXTX alih -alih paket pengemasan JCL. Namun, dokumen RXTX sangat jarang. Secara khusus, pengembang RXTX suka membuat versi dan konten tas mereka berantakan (seperti menggunakan atau tidak terpakai JCL terintegrasi). Mulai dari versi 1.5, RXTX mencakup kelas alternatif dari kelas Javacomm publik. Karena alasan hukum, mereka tidak berada dalam paket Java.pomm, tetapi di bawah GUI.IO. Namun, dua versi konten pengemasan yang ada sangat berbeda.
Oleh karena itu, jika Anda ingin memprogram Javacomm API asli
Sun Javacomm General Edition. Saat menulis artikel ini sebenarnya adalah paket UNIX (termasuk dukungan untuk berbagai jenis sistem UNIX, seperti Linux atau Solaris), bahkan pada Windows, paket UNIX ini juga perlu digunakan untuk memberikan implementasi universal Java.Comm. Hanya menggunakan Java untuk mengimplementasikan bagian itu akan digunakan, tetapi perpustakaan lokal UNIX akan diabaikan.
RXTX 2.0, untuk memiliki penyedia yang berbeda dalam versi universal Javacomm, tidak seperti yang di bawah paket Javacomm. Namun, jika Anda hanya ingin mengganti paket dengan GNU.IO, maka Anda hanya perlu mengonversi aplikasi Javacomm menjadi aplikasi RXTX.
Jika Anda melepaskan salah satu dari banyak anggota dari banyak anggota yang membuat Javacomm yang kecewa dengan perilaku mendukung jendela, maka Anda harus mentransfer Javacom Anda ke RXTX. Seperti yang Anda lihat di atas, ada dua cara untuk menyelesaikan ini.
上面的第一项在前面已经解释,第二项也相当简单。对于需要将JavaComm应用移植到RxTx 2.1上来的人,只需要将应用源代码中所有对“java.comm”包的引用换成“gnu.io”包,如果原始的JavaComm应用编写恰当,这里就没有其他的事情需要去做。
在Unix平台上,RxTx 2.1甚至提供了工具“contrib/ChangePackage.sh”去在源代码树形结构中执行全局的替换,这样的替换在其他的平台很容易使用支持重构功能的IDE(集成开发环境)来完成。