From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from MTA-09-3.privateemail.com (mta-09-3.privateemail.com [68.65.122.19]) by sourceware.org (Postfix) with ESMTPS id 113D2385E004 for ; Thu, 5 Aug 2021 14:02:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 113D2385E004 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=eatonphil.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=eatonphil.com Received: from mta-09.privateemail.com (localhost [127.0.0.1]) by mta-09.privateemail.com (Postfix) with ESMTP id 1B642180022E for ; Thu, 5 Aug 2021 10:02:32 -0400 (EDT) Received: from mail-vs1-f45.google.com (unknown [10.20.151.222]) by mta-09.privateemail.com (Postfix) with ESMTPA id 02D45180022C for ; Thu, 5 Aug 2021 10:02:31 -0400 (EDT) Received: by mail-vs1-f45.google.com with SMTP id y1so3131838vsc.1 for ; Thu, 05 Aug 2021 07:02:31 -0700 (PDT) X-Gm-Message-State: AOAM532Jal/sOGLQKSVeT7OU3l0Xhal9jgUknRbOSNmxpXPzEx3Smk++ 5j21TGjsjSYyP8z/UrTDuIO4qHBrulmXmFaf/9A= X-Google-Smtp-Source: ABdhPJy199qGc52wIObDUSdB+gVAPOxDzSbNc09qKoriCmVRMDhkM4wtblEnVpO/BaquoPwy8Qfqyc3pSP11zcj+tdI= X-Received: by 2002:a67:2c44:: with SMTP id s65mr134590vss.29.1628172151241; Thu, 05 Aug 2021 07:02:31 -0700 (PDT) MIME-Version: 1.0 References: <87zgtwv42v.fsf@L440.i-did-not-set--mail-host-address--so-tickle-me> In-Reply-To: <87zgtwv42v.fsf@L440.i-did-not-set--mail-host-address--so-tickle-me> From: Phil Eaton Date: Thu, 5 Aug 2021 10:02:20 -0400 X-Gmail-Original-Message-ID: Message-ID: Subject: Re: Example of importing a jar (from ~/.m2/repository) To: Alcides Flores Pineda Cc: kawa@sourceware.org X-Virus-Scanned: ClamAV using ClamSMTP X-Spam-Status: No, score=-1.3 required=5.0 tests=BAYES_00, HTML_MESSAGE, KAM_DMARC_STATUS, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: kawa@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Kawa mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 05 Aug 2021 14:02:36 -0000 Hey Alcides! Thanks for the response. Why do I need to _both_ cp or symlink a jar into $HOME/lib and also set -classpath? Why can't I leave it in its current place and just set -classpath? Also, I already set $CLASSPATH to the location of the jar. Isn't that the same thing as setting -classpath? Thanks! Phil On Thu, Aug 5, 2021 at 1:43 AM Alcides Flores Pineda wrote: > Hi Phil: > > If you are just running Kawa from the command line and all that you want > is to use/test some library (from a local Maven repository or not) in the > Kawa REPL, then you can just copy or symlink all the needed JAR files, > (including `kawa.jar`) into a specific directory, and then tell java to > run them from there. > > For example, suppose I want to use the Apache Commons Codec > library from my local Maven repo ($HOME/.m2/repository) in a Kawa REPL, > then, what I do is the following: > > 1. I copy or symlink the required file along with `kawa.jar`) > > ($HOME/.m2/repository/commons-codec/commons-codec/1.10/commons-codec-1.10= .jar) > into a directory (say for example $HOME/lib). > > 2. From there run as: > cd $HOME/lib > java -cp $HOME/lib/commons-codec-1.10.jar:$HOME/lib/kawa.jar kawa.repl > > 3. Now I can use the DigestUtils class from the Kawa repl as: > #|kawa:1|# (import (class org.apache.commons.codec.digest DigestUtils)) > #|kawa:2|# (DigestUtils:md5-hex "mystring") > 169319501261c644a58610f967e8f9d0 > > The same stuff applies if you want to run/use it from a Kawa scheme scrip= t. > > On the other side, if you need/want to use more than a library/JAR (say > a framework like Spring) with Kawa in a Maven project and run it from > there, then I suggest you to do the following: > > 1. Use the Kawa Maven plugin that Arvydas wrote last year to compile > your Kawa scheme files: > * https://github.com/arvyy/kawa-maven-plugin > > 2. Configure your POM (pom.xml) in such a way that it uses the desired > libraries/dependencies and the `kawa.jar` to compile and run your Kawa > scheme > files, for example with the Maven Ant-Run plugin and the Exec Maven > plugin. > > > Greetings. > -- > Alcides Flores Pineda. > > > El mi=C3=A9, ago 04 2021, Phil Eaton escribi=C3=B3: > > > Hey folks, > > > > New to Java and Kawa. I'm trying to import a web server library that I > > installed through maven. > > > > The minimal program I'm running is this (test.scm): > > > > (import (class io.jooby Context)) > > > > > > And I run it by making all maven jars available in the CLASSPATH: > > > > CLASSPATH=3D"$(find ~/.m2/repository -name '*.jar' | paste -sd ';');." = kawa > > test.scm > > > > > > But I get: > > > > test.scm:2:16: no class found named io.jooby.Context > > > > > > The io.jooby:jooby jar is > > at ~/.m2/repository/io/jooby/jooby/2.10.0/jooby-2.10.0.jar. > > > > What more should I do for Kawa to find the class? > > > > Thanks! > > Phil > >