Mathematica 9 is now available
Services & Resources / Wolfram Forums / MathGroup Archive
-----

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: [mg110994] Re: Accessing static members with J/Link
  • From: John_V <jvillar.john at gmail.com>
  • Date: Fri, 16 Jul 2010 05:17:14 -0400 (EDT)

Well, problem solved. I'm answering my own post in case others have been 
confused as I was.

As I discovered on my own after posting

    Needs["JLink`"]
    InstallJava[]
    myMathClass = LoadJavaClass["java.lang.Math"]
    pi = java`lang`Math`PI
    java`lang`Math`abs[-5]
       

works. An e-mail from Wolfram told me I can also use the shorter form

    pi = Math`PI
    Math`abs[-5]

The key (and my point of confusion) is that the short form uses the Java 
class name, *not* the object returned by LoadJavaClass["..."]

John


On 7/15/2010 3:09 AM, John_V wrote:
> 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?
>
> Thanks,
>
> John
>
>    



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