MathGroup Archive 2010

[Date Index] [Thread Index] [Author Index]

Search the Archive

Re: Accessing static members with J/Link

  • To: mathgroup at smc.vnet.net
  • Subject: [mg110982] Re: Accessing static members with J/Link
  • From: Albert Retey <awnl at gmx-topmail.de>
  • Date: Fri, 16 Jul 2010 05:15:03 -0400 (EDT)
  • References: <i1mc8o$8v5$1@smc.vnet.net>

Am 15.07.2010 09:10, schrieb John_V:
> I'm trying to learn how to use J/Link, and I have run into an elementary 
> (I hope) problem when I try to access static methods and fields. For 
> example, the Java Math class has static fields for E and PI and a number 
> of static methods, abs() among them. Here's what happens when I try to 
> use them:
> 
> My inputs:
> 
>     Needs["JLink`"]
>     InstallJava[]
>     myMathClass = LoadJavaClass["java.lang.Math"]
>     Fields[myMathClass]
>     pi = myMathClass`PI
>     myMathClass`abs[-5]
> 
> /Mathematica/'s outputs:
> 
>     Out[2]= LinkObject[...]
> 
>     Out[3]= JavaClass[java.lang.Math, <> ]
> 
>     Out[4]//TableForm=
>          static final double E
>          static final double PI
> 
>     Out[5]= myMathClass`PI
> 
>     Out[6]= myMathClass`abs[-5]
> 
> I believe the fact that Out[4] correctly lists java.lang.Math's static 
> fields means LoadJavaClass worked, but I expected Out[5] = 3.1415... and 
> Out[6] = 5. I thought this was a near verbatim transcription of the 
> examples in the "Calling Methods and Accessing Fields" part of the 
> J/Link user guide. What am I doing wrong?

You are just using the wrong namespace, this should work:

Needs["JLink`"]

LoadJavaClass["java.lang.Math"]

java`lang`Math`PI

java`lang`Math`abs[-5]

hth,

albert


  • Prev by Date: Re: Select only certain sublists matching criteria
  • Next by Date: Re: Templates from Usage Messages
  • Previous by thread: Accessing static members with J/Link
  • Next by thread: Re: Accessing static members with J/Link