Help, Setting classpath, using external java libraries with Kawa

classic Classic list List threaded Threaded
6 messages Options
Reply | Threaded
Open this post in threaded view
|

Help, Setting classpath, using external java libraries with Kawa

Vasantha Ganesh
Hello Bothner,
  This is probably a noob question. In Java while compiling and using
external libraries  we use -classpath option. How to use external java
libraries with Kawa?

I read https://www.gnu.org/software/kawa/Compiling.html

Then I tried to compile scheme program with `--main` and `-C` options
and generated a .class file. Then I tried to  run it with Java like a
normal class file by setting -classpath option, but I get:

Error: Could not find or load main class somescript

I also tried the -J option with kawa and I get

Error: Could not find or load main class

I also tried to set the CLASSPATH to the external library (jar file),
it does not work.

Vasantha Ganesh K.
Reply | Threaded
Open this post in threaded view
|

Re: Help, Setting classpath, using external java libraries with Kawa

Sudarshan S Chawathe
> From: Vasantha Ganesh <[hidden email]>
> Date: Sat, 1 Apr 2017 15:05:52 +0530

>   This is probably a noob question. In Java while compiling and using
> external libraries  we use -classpath option. How to use external java
> libraries with Kawa?

If I understand your question correctly then it seems you need to use
the -D option to define java.library.path suitably.  Example:

  kawa -Djava.library.path="/where/the/java/libs/are:/another/one:/so/on"

Regards,

-chaw

Reply | Threaded
Open this post in threaded view
|

Re: Help, Setting classpath, using external java libraries with Kawa

Per Bothner
In reply to this post by Vasantha Ganesh
On 04/01/2017 02:35 AM, Vasantha Ganesh wrote:

> Hello Bothner,
>   This is probably a noob question. In Java while compiling and using
> external libraries  we use -classpath option. How to use external java
> libraries with Kawa?
>
> I read https://www.gnu.org/software/kawa/Compiling.html
>
> Then I tried to compile scheme program with `--main` and `-C` options
> and generated a .class file. Then I tried to  run it with Java like a
> normal class file by setting -classpath option, but I get:
>
> Error: Could not find or load main class somescript
>
> I also tried the -J option with kawa and I get
>
> Error: Could not find or load main class
>
> I also tried to set the CLASSPATH to the external library (jar file),
> it does not work.

Show us the actual commands you're trying, including the command used
to create the jar file.

Both setting CLASSPATH and using -J should work.

Note you have to use a separate -J option for each "word":

kawa -J-cp -Jfoo.jar

is roughly equivalent to

java -cp foo.jar kawa.repl

On 04/01/2017 04:23 AM, Sudarshan S Chawathe wrote:>> From: Vasantha Ganesh <[hidden email]>

> If I understand your question correctly then it seems you need to use
> the -D option to define java.library.path suitably.  Example:
>
>   kawa -Djava.library.path="/where/the/java/libs/are:/another/one:/so/on"

The java.library.path relates to native libraries (.so/.dll, not .class or .jar files).
It don't think it is relevant here.
--
        --Per Bothner
[hidden email]   http://per.bothner.com/
Reply | Threaded
Open this post in threaded view
|

Re: Help, Setting classpath, using external java libraries with Kawa

Vasantha Ganesh
Hello,
  I'm trying to convert this(http://lpaste.net/354170) Java code into
Scheme(Kawa) (http://lpaste.net/354171).

I ran this for java and it ran without hickups,

java -cp /usr/share/java/jnr-ffi.jar:.:/usr/lib/java/jffi.jar:/usr/lib/java/jffi-native.jar:/usr/share/java/objectweb-asm/asm.jar
Getpid.java

and for kawa, I ran this:

kawa -J -cp /usr/share/java/jnr-ffi.jar:.:/usr/lib/java/jffi.jar:/usr/lib/java/jffi-native.jar:/usr/share/java/objectweb-asm/asm.jar
getpid.scm

The exact error that I get is:

Error: Could not find or load main class

Thank you,

Vasantha Ganesh K.

On Sat, Apr 1, 2017 at 6:24 PM, Per Bothner <[hidden email]> wrote:

> On 04/01/2017 02:35 AM, Vasantha Ganesh wrote:
>>
>> Hello Bothner,
>>   This is probably a noob question. In Java while compiling and using
>> external libraries  we use -classpath option. How to use external java
>> libraries with Kawa?
>>
>> I read https://www.gnu.org/software/kawa/Compiling.html
>>
>> Then I tried to compile scheme program with `--main` and `-C` options
>> and generated a .class file. Then I tried to  run it with Java like a
>> normal class file by setting -classpath option, but I get:
>>
>> Error: Could not find or load main class somescript
>>
>> I also tried the -J option with kawa and I get
>>
>> Error: Could not find or load main class
>>
>> I also tried to set the CLASSPATH to the external library (jar file),
>> it does not work.
>
>
> Show us the actual commands you're trying, including the command used
> to create the jar file.
>
> Both setting CLASSPATH and using -J should work.
>
> Note you have to use a separate -J option for each "word":
>
> kawa -J-cp -Jfoo.jar
>
> is roughly equivalent to
>
> java -cp foo.jar kawa.repl
>
> On 04/01/2017 04:23 AM, Sudarshan S Chawathe wrote:>> From: Vasantha Ganesh
> <[hidden email]>
>
>> If I understand your question correctly then it seems you need to use
>> the -D option to define java.library.path suitably.  Example:
>>
>>   kawa -Djava.library.path="/where/the/java/libs/are:/another/one:/so/on"
>
>
> The java.library.path relates to native libraries (.so/.dll, not .class or
> .jar files).
> It don't think it is relevant here.
> --
>         --Per Bothner
> [hidden email]   http://per.bothner.com/
Reply | Threaded
Open this post in threaded view
|

Re: Help, Setting classpath, using external java libraries with Kawa

Vasantha Ganesh
for java it was actually:

java -cp /usr/share/java/jnr-ffi.jar:.:/usr/lib/java/jffi.jar:/usr/lib/java/jffi-native.jar:/usr/share/java/objectweb-asm/asm.jar
Getpid

Vasantha Ganesh K.

On Sat, Apr 1, 2017 at 6:41 PM, Vasantha Ganesh
<[hidden email]> wrote:

> Hello,
>   I'm trying to convert this(http://lpaste.net/354170) Java code into
> Scheme(Kawa) (http://lpaste.net/354171).
>
> I ran this for java and it ran without hickups,
>
> java -cp /usr/share/java/jnr-ffi.jar:.:/usr/lib/java/jffi.jar:/usr/lib/java/jffi-native.jar:/usr/share/java/objectweb-asm/asm.jar
> Getpid.java
>
> and for kawa, I ran this:
>
> kawa -J -cp /usr/share/java/jnr-ffi.jar:.:/usr/lib/java/jffi.jar:/usr/lib/java/jffi-native.jar:/usr/share/java/objectweb-asm/asm.jar
> getpid.scm
>
> The exact error that I get is:
>
> Error: Could not find or load main class
>
> Thank you,
>
> Vasantha Ganesh K.
>
> On Sat, Apr 1, 2017 at 6:24 PM, Per Bothner <[hidden email]> wrote:
>> On 04/01/2017 02:35 AM, Vasantha Ganesh wrote:
>>>
>>> Hello Bothner,
>>>   This is probably a noob question. In Java while compiling and using
>>> external libraries  we use -classpath option. How to use external java
>>> libraries with Kawa?
>>>
>>> I read https://www.gnu.org/software/kawa/Compiling.html
>>>
>>> Then I tried to compile scheme program with `--main` and `-C` options
>>> and generated a .class file. Then I tried to  run it with Java like a
>>> normal class file by setting -classpath option, but I get:
>>>
>>> Error: Could not find or load main class somescript
>>>
>>> I also tried the -J option with kawa and I get
>>>
>>> Error: Could not find or load main class
>>>
>>> I also tried to set the CLASSPATH to the external library (jar file),
>>> it does not work.
>>
>>
>> Show us the actual commands you're trying, including the command used
>> to create the jar file.
>>
>> Both setting CLASSPATH and using -J should work.
>>
>> Note you have to use a separate -J option for each "word":
>>
>> kawa -J-cp -Jfoo.jar
>>
>> is roughly equivalent to
>>
>> java -cp foo.jar kawa.repl
>>
>> On 04/01/2017 04:23 AM, Sudarshan S Chawathe wrote:>> From: Vasantha Ganesh
>> <[hidden email]>
>>
>>> If I understand your question correctly then it seems you need to use
>>> the -D option to define java.library.path suitably.  Example:
>>>
>>>   kawa -Djava.library.path="/where/the/java/libs/are:/another/one:/so/on"
>>
>>
>> The java.library.path relates to native libraries (.so/.dll, not .class or
>> .jar files).
>> It don't think it is relevant here.
>> --
>>         --Per Bothner
>> [hidden email]   http://per.bothner.com/
Reply | Threaded
Open this post in threaded view
|

Re: Help, Setting classpath, using external java libraries with Kawa

Per Bothner
In reply to this post by Vasantha Ganesh
On 04/01/2017 06:11 AM, Vasantha Ganesh wrote:

> Hello,
>   I'm trying to convert this(http://lpaste.net/354170) Java code into
> Scheme(Kawa) (http://lpaste.net/354171).
>
> I ran this for java and it ran without hickups,
>
> java -cp /usr/share/java/jnr-ffi.jar:.:/usr/lib/java/jffi.jar:/usr/lib/java/jffi-native.jar:/usr/share/java/objectweb-asm/asm.jar
> Getpid.java
>
> and for kawa, I ran this:
>
> kawa -J -cp /usr/share/java/jnr-ffi.jar:.:/usr/lib/java/jffi.jar:/usr/lib/java/jffi-native.jar:/usr/share/java/objectweb-asm/asm.jar
> getpid.scm
>
> The exact error that I get is:
>
> Error: Could not find or load main class

There can't be any space after -J - it has to be the same option.
And as I wrote: you have to repeat the -J for each Java option:

kawa -J-cp -J/usr/share/java/jnr-ffi,jar:etc:etc getpid.scm

The -J option works the same way as in javac when it uses -J to pass
options to the JVM it is running on.
--
        --Per Bothner
[hidden email]   http://per.bothner.com/