Saya telah membuat program Java dan saya ingin menjalankannya dari iSeries. Saya sudah bisa menjalankannya dari QSH jadi saya tahu itu dikompilasi dan berjalan dengan baik, tetapi saya harus menjalankannya dari baris perintah bukan QSH. Program ini membutuhkan file jsch-0.1.55.jar agar program dapat bekerja dengan benar dan saya tidak 100% yakin bagaimana memanggil file jar dengan program yang menjadi referensinya.

Saya sudah mencoba

RUNJVA CLASS(ANL0106J) CLASSPATH('/JAVA/Jars/jsch-0.1.55.jar')

Itu tidak berhasil. Kemudian saya mencoba

RUNJVA CLASS('/JAVA/Jars.jsch-0.1.55.jar':. ANL0106J) CLASSPATH('/Java/Jars/jsch-0.1.55.jar')

Itu juga tidak berhasil. Apa yang saya lakukan salah?

0
ProgrammerLarry 14 Maret 2019, 22:15

1 menjawab

Jawaban Terbaik

Setelah berhasil melakukan ini berkali-kali, percobaan terakhir Anda tampaknya cukup dekat, tetapi ubah parameter CLASS untuk menunjuk ke file kelas Anda yang berisi metode utama. ANL0106J sepertinya nama kelas yang cukup aneh .. Contohnya adalah:

CLASS(com.company.test.ApplicationMain)

Dengan CLASSPATH menunjuk ke stoples yang diperlukan menggunakan nama path lengkap. Sebagai contoh:

RUNJVA CLASS(com.company.test.ApplicationMain) CLASSPATH('/test/app.jar:/test/dependency.jar')

Untuk membuat masalah sedikit lebih mudah, Anda bahkan dapat memasukkan ketergantungan Anda dalam file JAR Anda dengan menggunakan sesuatu seperti maven atau Gradle untuk membuat bangunan Anda, yang kemudian dapat dikonfigurasi untuk menghasilkan toples lemak. Pada dasarnya, itu adalah toples yang berisi file JAR lain yang bergantung pada aplikasi Anda. Dengan begitu, Anda juga dapat yakin bahwa aplikasi Anda akan terus berfungsi, bahkan setelah Anda memperbarui satu file jar di mesin ibm i Anda misalnya. Shadowjar misalnya cukup mudah diatur menggunakan proyek gradle yang akan melakukan ini untuk Anda. Maka itu hanya masalah menjalankan tugas bootjar gradle dan menggunakan perintah RUNJVA, cukup dengan menunjuk ke JAR tunggal Anda. Jangan terjebak dalam neraka manajemen ketergantungan, tolong. Selamatkan diri Anda dan pengembang masa depan dengan menggunakan sesuatu seperti maven atau gradle. Gradle/maven bahkan dapat digunakan untuk mengelola ketergantungan menggunakan repositori maven dengan alat seperti Sonatype Nexus yang juga dapat di-host secara lokal. Jika JAR Anda memiliki manifes yang valid, Anda tidak perlu melakukan hal lain. Ini akan terlihat seperti ini:

RUNJVA CLASS('/test/app.jar')

Sangat berguna untuk menggunakan CI, yang dapat membangun JAR untuk Anda dari repositori GIT dan menempatkan toples lemak di jalur yang benar, tanpa Anda harus melakukan satu hal pun. Menyiapkan Jenkins di as400 sama sekali tidak sulit menggunakan server aplikasi Apache WebSphere yang merupakan opsi yang dapat digunakan untuk meng-host file WAR, sederhananya (itu bisa melakukan lebih dari itu: P).

Sial, hanya menggunakan satu toples untuk perintah RUNJVA juga akan mempercepat waktu yang diperlukan untuk memulai aplikasi Anda karena hanya perlu memverifikasi satu toples. Hanya makanan untuk dipikirkan. Omong-omong, inilah entri pakar: https://mvnrepository.com/artifact/com.jcraft/jsch/0.1. 55

Di samping catatan untuk pengembang Java/react: Ya, sesama pengembang Java/react, seseorang dapat menggunakan perintah RUNJVA untuk memodernisasi pengembangan ibm i untuk menjalankan aplikasi boot Spring! Kami berhasil menjalankan aplikasi reaksi ujung depan menggunakan sistem backend boot musim semi, Bekerja sangat cepat, seperti yang diharapkan :)

(Jawaban yang sama diberikan kepada Anda di Reddit, cukup di platform ini untuk membuatnya terlihat oleh orang lain yang mencari ini di Stackoverflow)

0
user7791584user7791584 15 Maret 2019, 17:47