public inbox for kawa@sourceware.org
 help / color / mirror / Atom feed
From: Arvydas Silanskas <nma.arvydas.silanskas@gmail.com>
To: Phil Eaton <phil@eatonphil.com>
Cc: Alcides Flores Pineda <alcides.fp@gmail.com>,
	kawa mailing list <kawa@sourceware.org>
Subject: Re: Example of importing a jar (from ~/.m2/repository)
Date: Thu, 5 Aug 2021 18:54:52 +0300	[thread overview]
Message-ID: <CAPh7weBKTGVcRNGJkkXjv0PPkKVY6Ynun8mJLuhoytB9xr4=9Q@mail.gmail.com> (raw)
In-Reply-To: <CAByiw+oQpi+Yf=JBy=rp5zCuSgTPMW1MA+gQfBuyfqhPJanbLA@mail.gmail.com>

Hello,

You should use `:` as a classpath separator on linux, not `;`.

Arvydas

2021-08-05, kt, 17:02 Phil Eaton <phil@eatonphil.com> rašė:

> 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 15:55 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
2021-08-05 15:54     ` Arvydas Silanskas [this message]
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='CAPh7weBKTGVcRNGJkkXjv0PPkKVY6Ynun8mJLuhoytB9xr4=9Q@mail.gmail.com' \
    --to=nma.arvydas.silanskas@gmail.com \
    --cc=alcides.fp@gmail.com \
    --cc=kawa@sourceware.org \
    --cc=phil@eatonphil.com \
    /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).