如何在Mathematica中使用Java?

我有两个文件,GRASP.nb和GRASP.java,在同一个文件夹中(BTW:GRASP =贪婪的随机自适应搜索程序). GRASP.java文件包含一个方法public static int [] TSP(int [] [] g,int numberOfIterations,int k).我想在Mathematica中称这种方法.

我在Mathematica文档和here中读到了我应该写的内容

Needs["JLink`"];

InstallJava[];

obj=JavaNew[NotebookDirectory[]~~"GRASP.java"]

要么

Needs["JLink`"];

InstallJava[];

obj=LoadJavaClass[NotebookDirectory[]~~"GRASP.java"]

或类似的东西,但我尝试的任何东西,都会返回错误.我有WinXP,Mathematica 7,Eclipse 3.6.

任何工作的例子都将非常感激.

解决方法:

不要忘记首先编译Java类 – 您无法直接加载GRASP.java.

编译后,请尝试以下操作:

Needs["JLink`"]

AddToClassPath[NotebookDirectory[]];

LoadJavaClass["GRASP"];

GRASP`TSP[{{1,2,3},{4,5,6}}, 7, 8]

由于TSP方法是静态方法,因此必须先加载Java类,然后才能访问它.请注意,该类成为名为GRASP的Mathematica上下文,静态方法作为该上下文中的符号进行访问(GRASP`TSP,如上所示).

如果您要访问的方法是常规方法(非静态方法),则调用序列将如下所示:

Needs["JLink`"]

AddToClassPath[NotebookDirectory[]];

obj = JavaNew["GRASP"];

obj@someMethod[{{1,2,3},{4,5,6}}, 7, 8]

所有这些都假定您的Java类包含在默认包中 – 这是一种不寻常的情况.如果类包含在命名包中,则语法如下:

Needs["JLink`"]

AddToClassPath[NotebookDirectory[]];

LoadJavaClass["com.stackoverflow.GRASP"];

com`stackoverflow`GRASP`TSP[{{1,2,3},{4,5,6}}, 7, 8]

要么

Needs["JLink`"]

AddToClassPath[NotebookDirectory[]];

obj = JavaNew["com.stackoverflow.GRASP"];

obj@someMethod[{{1,2,3},{4,5,6}}, 7, 8]

如果该类位于命名包中(在我的示例中为com.stackoverflow),那么请确保该类具有相对于笔记本的路径com / stackoverflow / GRASP.class.这是Java的要求,而不是Mathematica.

标签:java,wolfram-mathematica

来源: https://codeday.me/bug/20190610/1210900.html

java mathematica_Java和Mathematica交互相关推荐

  1. java mathematica_java与mathematica

    展开全部 其实这是很简单的问题62616964757a686964616fe78988e69d8331333238653934. 在Mathematica中提供了许多接口与外部程序交流信息,其中JLi ...

  2. JAVA与SAP数据交互的方式总结

    JAVA与SAP数据交互的方式总结 RFC方式:Java程序直接通过RFC访问SAP的对象(或称函数,可能叫法不对)     SAP提供了BAPI(Business Application Progr ...

  3. java窗体与Flash交互

    最近在研究flash,用flash去读取文件很简单,但是存储文件就很麻烦了. 因此想到用java的窗体进行交互. 下面是DJNativeSwing-SWT-1-0-3-20140708的下载链接: h ...

  4. Java进程与子进程交互

    /* * Java进程与子进程交互 * */ public class RunyimeDemo {public static void main(String[] args){Runtime run ...

  5. java毕业设计医疗病历交互系统Mybatis+系统+数据库+调试部署

    java毕业设计医疗病历交互系统Mybatis+系统+数据库+调试部署 java毕业设计医疗病历交互系统Mybatis+系统+数据库+调试部署 本源码技术栈: 项目架构:B/S架构 开发语言:Java ...

  6. 基于JAVA企业间信息交互系统计算机毕业设计源码+数据库+lw文档+系统+部署

    基于JAVA企业间信息交互系统计算机毕业设计源码+数据库+lw文档+系统+部署 基于JAVA企业间信息交互系统计算机毕业设计源码+数据库+lw文档+系统+部署 本源码技术栈: 项目架构:B/S架构 开 ...

  7. java ajax post_2、Ajax与Java通过POST方式交互

    1.关于Ajax交互的步骤 1.1  获取到xmlhttprequest 1.2  设置xmlhttprequest的onreadystatechange响应事件 1.3  准备获取ajax请求 xm ...

  8. java与mysql的交互_java与数据库交互常用到的一些方法

    下面我整理了一下java中常用的几个与数据库交互的常用方法,仅供参考: 1.执行SQL(dao层的实现类中) (1)SQL查询: //import org.hibernate.Query; //imp ...

  9. ajax与java交互实例,1、Ajax与Java通过GET方式交互

    1.关于Ajax交互的步骤 1.1  获取到xmlhttprequest 1.2  设置xmlhttprequest的onreadystatechange响应事件 1.3  准备获取ajax请求 xm ...

最新文章

  1. Python学习笔记17:标准库之数学相关(math包,random包)
  2. 力控报警转储 mysql_力控ODBC转储说明.pdf
  3. 【坑爹微信】总有一款接口能坑你到吐血 --- 微信开发经验录
  4. ubutun 因为端口冲突引起安装nginx报错的解决方法
  5. gcc中的内嵌汇编语言(Intel i386平台)
  6. android 初学者实现 popupwindow的自动弹出,Android popupWindow弹出窗体实现方法分析
  7. windows server 2008 安装linux,使用WSL在Windows Server 2019上运行Linux的方法
  8. linux定时备份文件到指定文件夹,Linux定时备份数据库到指定邮箱的方法
  9. 如何用axure绘制图表_用Python绘制手绘风格的图表
  10. cisco路由器设置用户名和密码的几种方式
  11. Handler sync barrier(同步屏障)
  12. 在豌豆荚安卓市场下载了伪造的ES文件管理器,该流氓apk会自动的下载手机游戏
  13. 日常开单送货VBA模块
  14. VMware解决:未能将管道连接到虚拟机: 所有的管道范例都在使用中。
  15. Manim文档及源码笔记-CE文档-示例库3使用Manim绘图
  16. 谷歌浏览器打开CSDN老是弹出安卓网页
  17. OTN电层的保护SNCP保护详解
  18. windows10下载链接
  19. java版溺尸掉三叉戟吗_溺尸 - Minecraft Wiki,最详细的官方我的世界百科
  20. 今天杂志今天杂志社今天编辑部2022年第22期目录

热门文章

  1. 腾讯云海量社交网络业务下的DevOps架构应用实践
  2. 曾辉机器人_6款国产SCARA机器人性能大比拼
  3. 网上酒店客房预定系统数据库设计
  4. 赛门铁克、思科、FireEye、微软等公司联手对抗Hidden Lynx组织
  5. ShareSDK关于微信分享问题
  6. No.72-HackTheBox-windows-Fighter-Walkthrough渗透学习
  7. Alexa关闭,最好的SEO工具轮到谁了?
  8. 摩托罗拉Android+7寸,3.7英寸电容屏 摩托3G旗舰XT800发布
  9. 数学和英语不好,能当程序员吗?
  10. 大数的溢出,正溢出和负溢出