public inbox for kawa@sourceware.org
 help / color / mirror / Atom feed
From: Phil Eaton <phil@eatonphil.com>
To: Alcides Flores Pineda <alcides.fp@gmail.com>
Cc: kawa@sourceware.org
Subject: Re: Example of importing a jar (from ~/.m2/repository)
Date: Thu, 5 Aug 2021 10:02:20 -0400	[thread overview]
Message-ID: <CAByiw+oQpi+Yf=JBy=rp5zCuSgTPMW1MA+gQfBuyfqhPJanbLA@mail.gmail.com> (raw)
In-Reply-To: <87zgtwv42v.fsf@L440.i-did-not-set--mail-host-address--so-tickle-me>

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 <alcides.fp@gmail.com>
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 script.
>
> 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é, ago 04 2021, Phil Eaton escribió:
>
> > 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="$(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
>
>

  reply	other threads:[~2021-08-05 14:02 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-05  0:21 Phil Eaton
2021-08-05  5:43 ` Alcides Flores Pineda
2021-08-05 14:02   ` Phil Eaton [this message]
2021-08-05 15:54     ` Arvydas Silanskas
2021-08-05 16:11       ` Duncan Mak
2021-08-05 17:03         ` Phil Eaton

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAByiw+oQpi+Yf=JBy=rp5zCuSgTPMW1MA+gQfBuyfqhPJanbLA@mail.gmail.com' \
    --to=phil@eatonphil.com \
    --cc=alcides.fp@gmail.com \
    --cc=kawa@sourceware.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).