Sunday, 14 June 2020

Install Zekr di Ubuntu 20.04 LTS

Alhamdulillah akhirnya bisa juga menjalankan aplikasi Zekr di Ubuntu 20.04 LTS. Zekr adalah aplikasi Al Quran di komputer. Dengan zekr, kita bisa membaca teks Al Quran, lengkap dengan fitur terjemahnya. Dengan zekr, kita juga dapat mendengarkan suara bacaan Al Quran itu secara offline setelah mendownloadnya ke komputer kita.

zekr di Ubuntu 20.04


Langkah yang saya lakukan untuk install zekr di Ubuntu 20.04 LTS:
Downloads zekr dari halaman http://zekr.org/download.html
Ekstrak files tar.gz hasil downloadan tadi.

Jalankan terminal dan pindah ke direktori zekr berada, dalam hal ini saya pindah ke direktori Downloads/zekr.
Jalankan perintah ./zekr.sh
muncul error:

org.eclipse.swt.SWTError: No more handles [Unknown Mozilla path (MOZILLA_FIVE_HOME not set)]
    at org.eclipse.swt.SWT.error(Unknown Source)
    at org.eclipse.swt.browser.Mozilla.initMozilla(Unknown Source)
    at org.eclipse.swt.browser.Mozilla.create(Unknown Source)
    at org.eclipse.swt.browser.Browser.<init>(Unknown Source)
    at net.sf.zekr.ui.QuranForm.makeFrame(QuranForm.java:628)
    at net.sf.zekr.ui.QuranForm.init(QuranForm.java:340)
    at net.sf.zekr.ui.QuranForm.<init>(QuranForm.java:319)
    at net.sf.zekr.ZekrMain.startZekr(ZekrMain.java:51)
    at net.sf.zekr.ZekrMain.main(ZekrMain.java:94)

klik ok.

untuk mengatasi error itu, download SWT and Binary and Source dari alamat: https://archive.eclipse.org/eclipse/downloads/drops4/R-4.9-201809060745/

tersedia pilihan untuk linux 32 bit atau 64 bit. Saya memilih 64 bit sesuai OS Ubuntu 20.04 saya, yaitu https://archive.eclipse.org/eclipse/downloads/drops4/R-4.9-201809060745/download.php?dropFile=swt-4.9-gtk-linux-x86_64.zip.

Ekstrak file zip itu. Lalu copykan file swt.jar ke dalam folder Downloads/zekr/lib.
Replace saja file swt.jar nya.
solusi error swt zekr

Setelah itu kembali jalankan perintah ./zekr.sh di direktori Download/zekr.
Tara..
zekr di Ubuntu 20.04

Selanjutnya untuk menambahkan audio download recitation file dari alamat http://zekr.org/resources.html.
Pada aplikasi zekr, pilih Tools > Add > Recitation, pilih file zip yang tadi didownload dan klik OK.
Kemudian pada menu Audio, pilih Recitation, pilih nama Imam sesuai file recitation yg sudah kita masukkan tadi misalnya  Abu Bakr Ash Shatri.

Sekarang jalankan play audio. Muncul error:

java.lang.NoClassDefFoundError: org/tritonus/share/sampled/convert/TMatrixFormatConversionProvider
    at java.base/java.lang.ClassLoader.defineClass1(Native Method)
    at java.base/java.lang.ClassLoader.defineClass(ClassLoader.java:1017)
    at java.base/java.security.SecureClassLoader.defineClass(SecureClassLoader.java:174)
    at java.base/jdk.internal.loader.BuiltinClassLoader.defineClass(BuiltinClassLoader.java:800)
    at java.base/jdk.internal.loader.BuiltinClassLoader.findClassOnClassPathOrNull(BuiltinClassLoader.java:698)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClassOrNull(BuiltinClassLoader.java:621)
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:579)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    at java.base/java.lang.Class.forName0(Native Method)
    at java.base/java.lang.Class.forName(Class.java:398)
    at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.nextProviderClass(ServiceLoader.java:1209)
    at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNextService(ServiceLoader.java:1220)
    at java.base/java.util.ServiceLoader$LazyClassPathLookupIterator.hasNext(ServiceLoader.java:1264)
    at java.base/java.util.ServiceLoader$2.hasNext(ServiceLoader.java:1299)
    at java.base/java.util.ServiceLoader$3.hasNext(ServiceLoader.java:1384)
    at java.desktop/com.sun.media.sound.JSSecurityManager$2.run(JSSecurityManager.java:147)
    at java.desktop/com.sun.media.sound.JSSecurityManager$2.run(JSSecurityManager.java:144)
    at java.base/java.security.AccessController.doPrivileged(Native Method)
    at java.desktop/com.sun.media.sound.JSSecurityManager.getProviders(JSSecurityManager.java:151)
    at java.desktop/com.sun.media.sound.JDK13Services.getProviders(JDK13Services.java:102)
    at java.desktop/javax.sound.sampled.AudioSystem.getProviders(AudioSystem.java:1517)
    at java.desktop/javax.sound.sampled.AudioSystem.getFormatConversionProviders(AudioSystem.java:1266)
    at java.desktop/javax.sound.sampled.AudioSystem.getAudioInputStream(AudioSystem.java:884)
    at javazoom.jlgui.basicplayer.BasicPlayer.createLine(Unknown Source)
    at javazoom.jlgui.basicplayer.BasicPlayer.initAudioInputStream(Unknown Source)
    at javazoom.jlgui.basicplayer.BasicPlayer.open(Unknown Source)
    at net.sf.zekr.engine.audio.DefaultPlayerController.open(DefaultPlayerController.java:131)
    at net.sf.zekr.engine.audio.DefaultPlayerController.open(DefaultPlayerController.java:145)
    at net.sf.zekr.ui.AudioPlayerUiController.playerOpenAyaAudio(AudioPlayerUiController.java:249)
    at net.sf.zekr.ui.AudioPlayerUiController.playerPlaySpecialItemIfNeeded(AudioPlayerUiController.java:158)
    at net.sf.zekr.ui.AudioPlayerUiController.playerTogglePlayPause(AudioPlayerUiController.java:213)
    at net.sf.zekr.engine.audio.ui.AudioPlayerForm$13.widgetSelected(AudioPlayerForm.java:719)
    at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:252)
    at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:89)
    at org.eclipse.swt.widgets.Display.sendEvent(Display.java:5797)
    at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1374)
    at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:5051)
    at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:4583)
    at net.sf.zekr.ui.BaseForm.loopEver(BaseForm.java:36)
    at net.sf.zekr.ZekrMain.startZekr(ZekrMain.java:63)
    at net.sf.zekr.ZekrMain.main(ZekrMain.java:94)
Caused by: java.lang.ClassNotFoundException: org.tritonus.share.sampled.convert.TMatrixFormatConversionProvider
    at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581)
    at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178)
    at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522)
    ... 42 more

klik ok.
Sekarang masalahnya aplikasi antarmuka zekr berhasil dijalankan di Ubuntu 20.04 LTS tetapi audio tidak bisa diputar.

Untuk mengatasi error di atas, terlebih dahulu download file tritonus utils jar dari alamat http://www.java2s.com/Code/JarDownload/tritonus/tritonus-utils.jar.zip

Ekstrak file zip tadi dan copykan file tritonus-utils.jar ke dalam folder Downloads/zekr/lib

Sekarang pada folder zekr, klik kanan pada file zekr.sh, pilih Open with Text Editor.

Ganti baris CLASS_PATH= lib... dst dengan:

CLASS_PATH=lib/log4j-1.2.8.jar:lib/swt.jar:lib/commons-collections-3.2.1.jar:lib/commons-codec-1.3.jar:lib/commons-io-1.4.jar:lib/commons-lang-2.4.jar:lib/commons-logging-1.0.4.jar:lib/commons-configuration-1.6.jar:lib/velocity-1.6.2.jar:lib/lucene-core-3.0.0.jar:lib/lucene-highlighter-3.0.0.jar:lib/lucene-snowball-3.0.0.jar:lib/lucene-memory-3.0.0.jar:lib/lucene-misc-3.0.0.jar:lib/mp3spi-1.9.4.jar:lib/vorbisspi-1.0.3.jar:lib/jlayer-1.0.1.jar:lib/basicplayer-3.0.jar:lib/tritonus-share-0.3.6.jar:lib/tritonus-jorbis-0.3.6.jar:lib/tritonus-utils.jar:lib/jorbis-0.0.17.jar:lib/jspeex-0.9.7.jar:dist/zekr.jar

klik save dan exit.

Sekarang jalankan kembali zekr dengan perintah ./zekr.sh

Lalu klik play audio. Audio recitation Al Quran berhasil dimainkan.

audio zekr


Untuk menambahkan shortcut Zekr pada daftar aplikasi di Ubuntu 20.04 LTS, pertama kita install Alacarte Menu Editor dengan perintah:

sudo apt-get install alacarte

Setelah berhasil diintall, jalankan alacarte, atau Main Menu dari daftar aplikasi di Ubuntu 20.04. Di bagian paling kanan, pilih New Item, tuliskan:
Name: Zekr
Command: bash Downloads/zekr/zekr.sh
Comment: open-source Quranic application

klik OK. Close.

Sekarang buka daftar aplikasi di Ubuntu 20.04, pada bagian paling bawah sudah terdapat satu icon dengan nama Zekr. Tinggal klik icon itu dan Zekr berhasil dijalankan di Ubuntu 20.04 LTS tanpa harus melalui terminal lagi.
Share:

5 comments:

  1. Al-hamdullIllah.
    BarakAllahou fik brother. JazakAllahou kheir.

    ReplyDelete
  2. bang...file swt nya sdh g bisa di download...apa mungkin sudah didelete yah filenya?

    ReplyDelete
    Replies
    1. Saya berhasil download di link berikut:

      https://archive.eclipse.org/eclipse/downloads/drops4/R-4.9-201809060745/download.php?dropFile=swt-4.9-gtk-linux-x86_64.zip

      Delete
    2. saya juga berhasil.
      tapi di MX Linux
      makasih ya

      Delete
  3. saya pakai linux mint 21.1 x86_64 nggak jalan Bang... 😭

    ReplyDelete