Java调用R环境配置过程
- 格式:docx
- 大小:57.01 KB
- 文档页数:2
《Java语⾔程序设计》上机实验指导⼿册《Java语⾔程序设计》上机实验指导⼿册实验⼀ Java环境演练【⽬的】①安装并配置Java运⾏开发环境;②掌握开发Java应⽤程序的3个步骤:编写源⽂件、编译源⽂件和运⾏应⽤程序;③学习同时编译多个Java源⽂件。
【内容】1.⼀个简单的应⽤程序实验要求:编写⼀个简单的Java应⽤程序,该程序在命令⾏窗⼝输出两⾏⽂字:“你好,很⾼兴学习Java”和“We are students”。
程序运⾏效果⽰例:程序运⾏效果如下图所⽰:程序模板:Hello.javapublic class Hello{public static void main (String args[ ]){【代码1】//命令⾏窗⼝输出"你好,很⾼兴学习Java"A a=new A();a.fA();}}class A{void fA(){【代码2】//命令⾏窗⼝输出"We are students"}}实验后的练习:3.编译器怎样提⽰将System写成system这⼀错误?4.编译器怎样提⽰将String写成string这⼀错误?2.联合编译实验要求:编写4个源⽂件:Hello.java、A.java、B.java和C.java,每个源⽂件只有⼀个类,Hello.java是⼀个应⽤程序(含有main⽅法),使⽤了A、B和C类。
将4个源⽂件保存到同⼀⽬录中,例如:C:\100,然后编译Hello.java。
程序模板:模板1:Hello.javapublic class MainClass{public static void main (String args[ ]){【代码1】 //命令⾏窗⼝输出"你好,只需编译我"A a=new A();a.fA();B b=new B();b.fB();}}模板2 :A.javapublic class A{void fA(){【代码2】 //命令⾏窗⼝输出"I am A"}}模板3 :B.javapublic class B{void fB(){【代码3】 //命令⾏窗⼝输出"I am B"}public class C{void fC(){【代码4】 //命令⾏窗⼝输出"I am C"}}实验后的练习:5.将Hello.java编译通过后,不断修改A.java源⽂件中的代码,⽐如,在命令⾏窗⼝输出“我是A类”或“我被修改了”。
实验报告一JDK环境配置及Java语言基础实验1、调试作业题:编写一个Java程序,完成整数从1~100的连加,并将结果现实在屏幕上。
Main-Class: CRectangle(1)源代码:“PlusTo_100.java”-------------------------class PlusTo_100{public static void main(String[] args){int x,i=0;for(x=0;x<=100;x++){i+=x;}System.out.println("1+..100="+i);}}-------------------------(2)运行结果:2、给出一个矩形类Rectangle,其中含有多个构造方法。
上机编译并运行此程序,观察运行结果,体会其中不同构造方法的设计和使用。
Main-Class: CRectangle(1)源代码:“Rectangle.java”-------------------------class Rectangle{private int width;private int length;Rectangle(){ length=30;width=20; }Rectangle(int l,int w){length=l;width=w; }Rectangle(Rectangle r){width=r.width;length=r.length; }int width(){return width;}int length(){return length; }}-------------------------“CRectangle.java”(Main-class)-------------------------public class CRectangle{public static void main(String[] args){Rectangle x1=new Rectangle();Rectangle x2=new Rectangle(50,40);Rectangle x3=new Rectangle(x1);System.out.println(x1.length());System.out.println(x1.width());System.out.println(x2.length());System.out.println(x2.width());System.out.println(x3.length());System.out.println(x3.width());}}-------------------------(2)运行结果:3、调试附录3-1的程序,理解类的继承。
Linux调用Matlab程序完整说明本文档详细说明了Linux下Web项目调用Matlab函数的完整操作,文章适合对Java、Linux有一定基础了解的人群。
因Linux作为服务器,所以未在其上安装Matlab主程序,只安装了运行环境MCR。
本文档内所述的所有版本软件均以32位为准,JDK与MCR也使用32位。
若你的系统为64位,Linux系统同样为64位,则请尽量选择使用64位版本的JDK与MCR。
由于Matlab的版本限制问题,请保证Matlab主程序和MATLAB Compiler Runtime版本一致,本文以Matlab_R2012a_glnx32演示。
本文介绍的是web项目使用jsp调用matlab,环境需要安装JDK,且需设定完整JAVA 环境变量,本文Windows与Linux中均需安装同版本同位数的JDK。
注:本文中出现的win32指32位系统,win64则为64位系统。
本文采用的系统版本为中标麒麟国产操作系统,内核Linux,调用Matlab。
MCR = MATLAB Compiler Runtime本文中会在各个环节最后一项中注明本环节容易出现的错误和解决办法。
实现该功能原理:在windows上编写Matlab的算法,后打包发布成Jar文件;编写Java代码,引用Matlab运行包JavaBuild.jar,并加入算法Jar包。
若单独运行该算法,则将Java代码与这2个Jar包进行发布打包成Jar,将此Jar包导入Linux 后通过命令java –jar xxx.jar执行该程序。
若该算法是项目一部分,则不需要生成Jar包,直接在项目中加入算法包和运行包,调用即可。
实现步骤:1、安装Matlab2、安装MATLAB Compiler Runtime3、编写Matlab算法4、算法生成Jar包5、编写Java代码调用算法Jar包6、发布完整Jar执行7、Windows下Web项目JSP调用Matlab8、调用Matlab问题分析与解决9、Linux安装MATLAB Compiler Runtime操作10、Linux安装Tomcat10、Linux下web项目JSP调用Matlab安装Matlab(省略非必要说明):1、直接点开安装文件,执行setup.exe。
R语⾔rJava包安装载⼊及JAVA环境配置rJava 包的安装与载⼊⼀般⽂本分词的教程都会贴出:install.packages("rJava")library(rJava)来引导我们装载rJava包,运⾏install.packages("rJava") ⼀般可以顺利下载该package,但是运⾏library(rJava)时,经常有新⼿同学会遇到加载失败的情况,报错如下:Error : loadNamespace()⾥算'rJava'时.onLoad失败了,详细内容:调⽤: fun(libname, pkgname)错误: JAVA_HOME cannot be determined from the Registry! Try re-installing Java and make sure R and Java have matching architectures. Error: ‘rJava’程辑包或名字空间载⼊失败上述报错表⽰,该电脑没有JAVA运⾏环境,故需要下载安装JAVA,并配置环境变量,具体步骤如下:1.检查操作系统和R版本检查⾃⼰电脑是64位还是32位的(在控制⾯板⾥→系统),然后查看R的版本与操作系统是否⼀致,位置在RStudio⾥的Tools→Global Options,2.下载并安装JAVA,⽅法是百度关键词JDK + 64(or32),保证JAVA版本与R软件版本⼀致安装路径与R的安装路径⼀致,⽐如都放在C:\Program Files\JAVA下,安装过程中会有2处提⽰可更改安装路径,这其实是2次安装,⼀次是JDK⼀次是JRE,⼀般按照默认路径安装就⾏;需要注意的是,如果你是64位系统但下载安装的是32位JAVA,那么会默认安装到C:\Program Files (x86)\JAVA,x86代表是32位安装路径;安装完毕会有2个⽂件夹3.配置JAVA环境操作过程中要注意把教程中的路径换做⾃⼰电脑上的实际安装路径,另外安装成功后记得在终端⾥核验⼀下JAVA环境是否配置成功。
JavaEE的⼗三个技术规范Java 是⼀种⾮常棒的语⾔,健壮,跨平台运⾏,屏蔽了具体的平台环境的要求,也就是说只要⽀持java 虚拟机,就可以运⾏java程序。
下⾯,我们⼀起学习⼀下J2EE的⼗三种技术规范。
⼀、JDBC:Java Data Base Connectivity,数据库连接 ⼤家对微软的ODBC数据库访问的接⼝⽐较熟悉,⽽在java中创建数据库连接使⽤的是JDBC,学习过程中,JDBC和ODBC很相似,甚⾄JDBC⽐ODBC更好⽤,这是因为JDBC是在ODBC的基础上开发的,集成的ODBC的很多优点,同时他也是独⽴平台的。
⼆、JNDI:Java Naming and Directory Interfaces,Java的命名和⽬录接⼝ JNDI是⼀个Java应⽤程序设计接⼝,它为我们提供了查找和访问各种命名和⽬录服务的通⽤、统⼀⽅式。
JNDI避免了程序与数据库之间的紧耦合,使应⽤更加易于配置,便于部署。
有了JNDI,我们就不要关⼼“具体的数据库后台是什么?JDBC驱动程序是什么?JDBC URL 格式是什么?访问数据库的⽤户名和密码是什么?”这些问题了。
我们编写的程序不⽤关⼼对JDBC驱动的引⽤。
我们只需要在J2EE容器中定义⼀个数据源,然后通过这个数据源访问后台数据库。
参考:/zhaosg198312/article/details/3979435三、EJB:Enterprise Java Beans,企业级Java Beans、EJB是实现分布式业务逻辑的Java组件。
它以⼀个标准⾃动处理了如数据持久化、事务集成、安全对策等问题,为后台业务提供了⼀个标准⽅式。
EJB规范讨论了四中对象类型:⽆状态会话bean、有状态会话bean、实体bean、消息驱动bean。
Stateless Session Beans是⼀类不包含状态信息的分布式对象,允许来⾃多个客户端的并发访问。
⽆状态回话Bean没有资源集约性,访问的实例变量内容页不会被保存。
Java_U1课堂笔记(一)初识Java一、配置Java环境变量:1、复制JDK安装路径,如:C:\Program Files (x86)\Java\jdk1.7.0_51\bin2、粘贴到我的电脑->属性->高级系统设置->环境变量->Path3、加上英文的分号4、验证是否配置正确:dos-->java -version进入DOS窗口的方法:运行(或快捷键windows键+r)二、Java程序编写三步骤:编写 .java编译:javac **.java运行java **三、使用jad反编译工具:DOS中切换至jad安装目录,如:C:\jad1.5.8g.win输入命令:jad -s java D:\t01\HelloWorld.class四、变量的使用:页脚内容1变量取名,命名规则类型数值:int、double、float(f)非数值:char、String类型名字= 值;int age=10;五、上机验证:System.out.println(5+3);System.out.println("5"+3);六、Scanner的使用,接收用户键盘输入Scannerimport java.util.Scanner;Scanner input=new Scanner(System.in);input.next();(相关方法,nextDouble()、nextFloat()、nextInt(等)bin:exejre页脚内容2libsrc.zip(二)数据类型一、数据类型转换自动类型转换:int num=100;double b=num;强制类型转换double num=100.9;int b=(int)num;二、运算符赋值运算符=算数运算符+ - * / % ++ --+= -= *= /= %=关系运算符> < >= <= == !=逻辑运算符&& || !页脚内容3条件运算符?:了解优先级即可三、流程控制1、if:基本ifif-else多重if嵌套if注意:条件是boolean值常见错误:if(num=5){}else{}大括号不省略多重if顺序问题注意:页脚内容4流程图的使用和问题的分析解决过程2、switch等值比较注意:(1)语法上的常见错误(2)和多重if的异同循环结构:解决重复性的操作简介高效(三)循环结构一:循环:(1)while循环while(条件){操作循环变量迭代}注意:页脚内容5代码缩进循环能否正常退出(2)do-while循环do{循环}while(条件);注意:代码缩进循环能否正常退出和while的区别:语法上、执行上(至少执行一次)(3)for循环for(变量初始化;条件;变量迭代){循环操作}页脚内容6注意:代码缩进循环能否正常退出执行顺序循环变量可以有多个二、双重循环双重循环的特点:外层循环进入一次,内层循环就要完整的执行一遍特点:外执行一次内执行一轮双重循环次数:外层循环次数*内层循环的次数实现的重点:页脚内容7(1)确定谁做外层循环,确定谁做内层循环(2)两层循环变量有没有规律性的关系1、打印图形:找规律矩形行i外层星星j内层1 52 53 54 55 5平行四边形行i外层内层:空格星星1 4=5-i 52 3=5-i 53 2=5-i 5页脚内容84 1=5-i 55 0=5-i 5等腰三角形行i外层内层:空格星星1 4=5-i 1=2*i-12 3=5-i 3=2*i-13 2=5-i 5=2*i-14 1=5-i 7=2*i-15 0=5-i 9=2*i-12、打印九九乘法表行i(1-9)第一个操作数i 第二个操作数(从1到i)三:循环应用1、分析需求:重复做一件事情前提条件(循环进入的条件)做什么事情(循环操作)页脚内容92、用代码解释选择一种合适的循环结构whiledo-whilefor根据所选择的结构套用语法while(条件){}do{}while(条件);for(循环变量初始化;条件;迭代){}3、容易出错的点(1)变量在何处声明例1:计算5门课平均成绩页脚内容10例2:for(int i=0;i<=6;i++){System.out.println(i);}int j=i;System.out.println(j);(2)没有适当的(合适的)跳出循环根本跳不出来根本进不去循环多或少循环了一次四、循环的跳转break:跳出整个循环continue:跳出本次循环,进入下次循环return:结束方法(了解即可)五、程序调试页脚内容11设置断点Debug->单步运行F5 F6观察变量(三)数组一、数组1、数组的基本使用(1)数组的作用一组相同数据类型的数数组也是变量,内存中一串连续的空间(2)数组的几个基本概念标识符(数组名字)元素下标:从0开始数据类型数组的长度(数组名字.length)(3)数组使用步骤声明数组页脚内容12int[] num;int num[];分配空间num=new int[8];赋值处理数据int[] num={5,8,7};int[] num=new int[]{5,8,7};(4)循环和数组结合的使用下标(0-数组.length-1)遍历时两种方法:方法一:传统for方法二://增强型for(foreach)for(int score:scores){sum+=score;页脚内容13}二、回顾数组变量,内存中一串连续的空间相同数据类型的一组数据数组的基本概念元素数据类型(数组类型)下标(0,数组.length-1)数组的长度:数组.length数组的基本使用声明数组(类型[] 数组名称或类型数组名称[])分配空间(数组名称= new 数据类型[5];)赋值(num[0]= ;)处理数据变量:基本数据类型页脚内容14int、double、float、char、boolean引用数据类型String、数组内存分布不同使用上不同.三、数组的典型使用1、求最大值、最小值(打擂台)2、插入算法(找位置)3、冒泡排序数组存储5个数字下标:0 1 2 3 4外层循环内层循环i:0第一轮+ j比较次数:4 =4:length-1页脚内容15i:1第二轮+ j比较次数:3=4:length-1i:2第三轮+ j比较次数:2 =4:length-1i:3第四轮+ j比较次数:1=4:length-1i+j=数组.length-1j=数组.length-1-i共比较几次?5个数字:4+3+2+1=106个数字:5+4+3+2+1=157个数字:6+5+4+3+2+1=21n个数字:(n-1)+(n-2)+(n-3)+.....+1=n*(n-1)/24、Arrays类的使用常用方法:页脚内容16sort().....记得查API帮助文档(帮助文档已经在网盘中提供了,如果大家在Oracle官网中没有下载,可以找中心的技术顾问老师提供网盘用户名和密码,登录后拿到帮助文档)数据类型基本数据类型int double char boolean 。
Eclipse 配置第1章快捷键的配置(加快开发过程中代码编写)MyEclipse(Eclipse)常用快捷键预览:快捷键组合作用Ctrl+1快速修复(最经典的快捷键,就不用多说了)Ctrl+D 删除当前行Ctrl+Q 定位到最后编辑的地方Ctrl+L 定位在某行(对于程序超过100的人就有福音了)Ctrl+M 最大化当前的Edit或View (再按则反之)Ctrl+/ 注释当前行,再按则取消注释Ctrl+O 快速显示OutLineCtrl+T 快速显示当前类的继承结构Ctrl + F11 快速执行程序Ctrl+Shift+P 定位到对于的匹配符(譬如{}) (从前面定位后面时,光标要在匹配符里面,后面到前面,则反之)Ctrl+Shift+R 全局搜索文件(查找工程内的文件)重构(注:一般重构的快捷键都是Alt+Shift开头的了)Alt+Shift+R 重命名(是我自己最爱用的一个了,尤其是变量和类的Rename)变量名全局更改(对于变量的引用很有用)Alt+Shift+M 抽取方法(这是重构里面最常用的方法之一了,尤其是对一大堆泥团代码有用)Alt+Shift+C 修改函数结构(比较实用,有N个函数调用了这个方法,修改一次搞定)Alt+Shift+L 抽取本地变量( 可以直接把一些魔法数字和字符串抽取成一个变量,尤其是多处调用的时候)Alt+Shift+F 把Class中的local变量变为field变量(比较实用的功能)Alt+Shift+I 合并变量(可能这样说有点不妥Inline)Alt+Shift+V 移动函数和变量(不怎么常用)Alt+Shift+Z 重构的后悔药(Undo)Alt+Shift+S 弹出资源代码(生成set/get方法的时候可以使用)Alt+Shift+J 增加预定义注释F3 跳转到类、变量的声明Ctrl+Alt+↓复制当前行到下一行(复制增加)Ctrl+Alt+↑复制当前行到上一行(复制增加)ALT+↑当前行和上面一行交互位置(同上)Alt+↓当前行和下面一行交互位置(特别实用,可以省去先剪切,再粘贴了)Shift+Enter 在当前行的下一行插入空行(这时鼠标可以在当前行的任一位置,不一定是最后)第2章设置代码自动提示。
jprofile的使用1、摘要改善 Java 服务器的性能需要模拟负载下的服务器。
创建一个模拟环境、搜集数据并且分析结果可能是对许多开发人员的挑战。
这篇文章介绍了使用 JProfiler 跟踪分析 Java 服务器的性能。
简单的性能问题很容易分离并解决,然而,大的性能问题,如内存溢出或者系统的罢工,通常在系统处于高负载情况下发生,就不能这么简单的处理了。
这些问题需要一个独立的测试环境、一个模拟的负载,并且需要仔细地分析和跟踪。
在这篇文章中,我使用比较通用的工具( JProfiler 和 JBuilder )和设备创建了一个性能监控分析环境,跟踪本地和远程的服务器程序,专注于三个性能问题:内存、垃圾回收和多线程运行状况,从而很好的监视 JVM 运行情况及其性能。
2、改善服务器的性能服务器的性能改善是依赖于数据的。
没有可靠的数据基础而更改应用或环境会导致更差的结果。
分析器提供有用的Java服务器应用信息,但由于从单用户负载下的数据与多用户负载下得到的数据是完全不同的,这导致分析器的数据并不精确。
在开发阶段使用分析器来优化应用的性能是一个好的方式,但在高负载下的应用分析可以取到更好的效果。
在负载下分析服务器应用的性能需要一些基本的元素:1、可控的进行应用负载测试的环境。
2、可控的人造负载使得应用满负荷运行。
3、来自监视器、应用和负载测试工具自身的数据搜集。
4、性能改变的跟踪。
不要低估最后一个需求(性能跟踪)的重要性因为如果不能跟踪性能你就不能实际的管理项目。
性能上10-20%的改善对单用户环境来说并没有什么不同,但对支持人员来说就不一样了。
20%的改善是非常大的,而且通过跟踪性能的改善,你可以提供重要的反馈和持续跟踪。
虽然性能跟踪很重要,但有时为了使后续的测试更加精确而不得不抛弃先前的测试结果。
在性能测试中,改善负载测试的精确性可能需要修改模拟环境,而这些变化是必须的,通过变化前后的负载测试你可以观察到其中的转变。
G e o S e r v e r基础教程(一):环境搭建篇GeoServer的是一个基于Java的软件,它允许用户查看和编辑地理空间数据,使用开放地理空间联盟(OGC)提出的开放标准,为地图创建和数据分享提供了强大的便利性。
GeoServer是OpenGISWeb服务器规范的J2EE实现,利用GeoServer可以方便的发布地图数据,允许用户对特征数据进行更新、删除、插入操作,通过GeoServer 可以比较容易的在用户之间迅速共享空间地理信息。
GeoServer主要特性兼容WMS和WFS特性;支持PostGIS、Shapefile、ArcSDE、Oracle、VPF、MySQL、MapInfo;支持上百种投影;能够将网络地图输出为jpeg、gif、png、SVG、KML等格式;能够运行在任何基于J2EE/Servlet容器之上;嵌入MapBuilder支持AJAX 的地图客户端OpenLayers;除此之外还包括许多其他的特性。
这个系列博文将提供我在学习使用GeoServer的过程中的收获,内容包括GeoServer环境搭建、地图数据处理、部署地图数据、发布地图服务等功能的详细介绍。
力图通过这个系列博文的介绍,增进大家对GeoServer的全面了解。
也欢迎大家前来交流。
作为GeoServer基础教程(一):环境搭建篇,我们首先介绍如何搭建GeoServer 的生产环境,搭建生产环境包括三个部分,分别为http服务器、JDK和GeoServer,因为新版本的GeoServer中内置了http服务器,我们实际上只需安装后两者:一、安装JavaJDKGeoServer是基于Java的软件,运行的时候需要JDK的支持,如果你的系统中没有安装配置好JDK,请按照这篇博文(Windows下JDK下载及安装与配置)首先安装配置好JDK。
如果已经安装配置好的直接进入下一步。
二、下载安装GeoServer前往?下载最新稳定版的GeoServer,可以看到下载的时候根据系统的不同可以选择不同的安装文件:对于windows,我们有两种选择,一个是使用二进制文件(binary),另一个是使用安装包进行安装。
Win7下配置"JAVA环境变量"---JDK的安装与配置一.JDK的安装JDK安装过程很简单,可以均选择默认设置,直接点击"下一步"即可;安装目录可自定义到自己想安装的文件夹中,这里,我选择的安装目录为:E:\Program Files (x86)\Java\jdk1.7.0(JDK安装目录)。
二.安装完JDK,下面进行"JAVA环境变量"的配置,配置步骤如下:1.右击"计算机",选择"属性",在弹出的窗口中选择"高级系统设置"2.在弹出的"系统属性"窗口中的"高级"选项卡下,选择"环境变量"3.在弹出的"环境变量"窗口中,在"系统变量(S)"中设置3项属性,分别为:JAVA_HOME,PATH,CLASSPATH(大小写无所谓),若已存在则点击"编辑",不存在则点击"新建"。
二.Tomcat的安装与配置安装Tomcat之前先配置JDK,JDK的JAVA_HOME变量都必须设置好,以便Tomcat 找到JDK。
关闭防火墙等。
Tomcat的安装有两种版本:一种是安装版Tomcat,一种是免安装版Tomcat。
这里我装的是免安装版Tomcat,安装步骤如下:1.进入/下载Tomcat7.0.29的32-bit Windows zip 到E:\Tomcat,下载完直接解压,解压到E:\Tomcat\apache-tomcat-7.0.292.配置Tomcat的环境变量右击"计算机"→属性→高级系统设置→环境变量在系统变量中加以一下变量①TOMCAT_HOME,该变量指向解压文件的路径,该目录下有lib、bin文件夹。
添加方法如下:点击系统变量下的"新建",在"变量名"中填写"TOMCAT_HOME",在"变量值"中填写解压文件的路径,例如:E:\Tomcat\apache-tomcat-7.0.29,然后点击"确定",如图②CATALINA_HOME,该变量的值与TOMCAT_HOME相同,设置方法同①,如图:③在"系统变量"中找到Path变量,双击打开Path变量,在"变量值"的最后面添加"%TALINA_HOME%\bin",如图:④在"系统变量"中找到classPath变量,双击打开classPath变量,在"变量值"的最后面添加"%TALINA_HOME%\bin\servlet-api.jar",如图3. 安装Tomcat服务项默认情况下,是没有Apache Tomcat 7 和Apache Tomcat Tomcat 服务项的,免安装版Tomcat需要在控制台自己安装Tomcat服务项。
JAVA与MATLAB一、运行环境配置一、检查您的Java环境也许您的计算机上已经正确安装了Java环境,现在我们就要确定下这个Java是不是和我们当前的MATLAB Builder For Java版本相兼容:1、打开Window命令行CMD.exe。
2、在CMD.exe中输入java -version,如果正确安装了Java,将返回如下类似信息:java version "1.6.0_25"Java(TM) SE Runtime Environment (build 1.6.0_25-b06)Java HotSpot(TM) Client VM (build 20.0-b11, mixed mode, sharing)如果如果正确安装了Java,也可能返回如下内容:'java -version' 不是内部或外部命令,也不是可运行的程序或批处理文件。
可能您刚刚已经安装了JAV,可是还是出现了上面一行文字,那么做如下操作在CMD.exe中输入cd \再输入java -version,如果安装了可以返回上面的JAVA信息如果在上面操作后还是如下内容,则说明您没有安装Java哦3、在CMD.exe中继续输入javac -version注意:如果您没有在path环境变量中添加Javac的安装路径,此时您应该如下输入:%JAVA_HOME%\bin\javac -version其中%JAVA_HOME%为Java的安装根目录,如果您已经设置用户环境变量JAVA_HOME为JDK的路径,则可以直接使用%JAVA_HOME%,否必须自己手动将%JAVA_HOME%修改为JDK安装路径。
如果javac已经正确安装,MATLAB将返回如下信息:javac 1.6.0_254、上面仅仅获取了JDK的版本,那到底是不是和我们MATLAB兼容呢?在您的Command Window中输入>> version -javaans =Java 1.6.0_17-b04 with Sun Microsystems Inc. Java HotSpot(TM) Client VM mixed mode从上面的信息中,知道我当前使用的MATLAB 2011a兼容Java 1.6.0_17,可是我的计算机上安装的JDK 是1.6.0_25,是不是不兼容呀,呵呵,这点版本区别是没有问题的。
Rundeck部署和基本使⽤rundeck 介绍Rundeck 是⼀款能在数据中⼼或云环境中的⽇常业务中使程序⾃动化的开源软件。
Rundeck 提供了⼤量功能,可以减轻耗时繁重的体⼒劳动。
团队可以相互协作,分享如何过程⾃动化,查看业务活动或执⾏任务。
Rundeck 允许您运⾏任意数量的节点从⼀个基于 web 的任务或命令⾏界⾯。
Rundeck 还包括其他功能,使其易于扩展,您⾃动化努⼒包括︰访问控制、⼯作流建设、调度、记录和与外部源节点和选项数据集成。
具体流程图参照官⽹的如下:安装Rundeck 是你主机系统的服务器应⽤程序你指定⼀个中央⾏政控制中⼼。
内部,Rundeck 将作业定义和执⾏历史记录存储在关系数据库中。
输出从命令和⼯作处决保存在磁盘上,但可以转发到远程存储例如logstash。
Rundeck 分布式执⾏使⽤默认为 SSH 但插件允许您使⽤其他⼿段如 MCollective、 Salt、 WinRM 或⾃定义的⽅法的可插拔的节点执⾏层的命令。
Rundeck 服务器配置包括定义允许的远程主机的出站⽤户的设置。
远程计算机不需要回发到服务器进⾏连接。
1、安装JDKRundeck 是⼀个基于 Java Servlet 服务器,因此需要⽀持Java 运⾏环境#java -versionjava version "1.7.0_79"Java(TM) SE Runtime Environment (build 1.7.0_79-b15)Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)2、安装Rundeck这⾥使⽤的是rundeck的jar包安装,读者也可以采⽤rpm包⽅式的安装,这⾥看个⼈喜好,版本为⽬前最新版本,下载地址rundeck-launcher-2.6.3.jar定义Rundeck的环境变量来进⾏下⼀步的安装#vim /etc/profile 在末尾添加export RDECK_BASE=/opt/programs/rundeck_2.6.3 安装⽬录可以⾃⼰定义#source /etc/profile#echo $RDECK_BASE/opt/programs/rundeck_2.6.3定义安装⽬录后创建之后才能安装#mkdir -p $RDECK_BASE复制下载的jar包到安装⽬录夹中#cp rundeck-launcher-2.6.3.jar $RDECK_BASE启动jar包#cd $RDECK_BASE#java -XX:MaxPermSize=256m -Xmx1024m -jar rundeck-launcher-2.6.3.jar等待启动成功的信息2010-11-19 13:35:51.127::INFO: Started SocketConnector@0.0.0.0:4440当出现如上图的信息,表⽰当前服务启动成功,端⼝监听在默认端⼝4440,初始⽤户和密码都是admin启动成功后,我们可以看到rundeck的⽬录下有以下⽬录:#lsetc libext projects rundeck-launcher-2.6.3.jar server tools var启动和关闭在初始化jar包之后,下⼀次启动和关闭可以进⾏如下操作:#Startup$RDECK_BASE/server/sbin/rundeckd start#Shutdown$RDECK_BASE/server/sbin/rundeckd stop我这⾥采⽤的是普通⽤户apprun登录,RPM包默认的是rundeck⽤户,读者可以定义启动的⽤户,具体修改如下:#vim /$RDECK_BASE/etc/framework.propertiesframework.ssh.keypath = /home/apprun/.ssh/id_rsa #ssh认证⽤户的key存放⽬录er = apprun #启动默认⽤户#chown apprun:apprun rundeck_2.6.3/ -R #修改完之后,别忘了修改rundeck⽬录的宿主简单使⽤Rundeck1、⼏个基本概念Role-based Access Control Policies︰ Rundeck 访问控制策略将授予⽤户和⽤户组某些权限执⾏权限限制访问rundeck 资源,如项⽬、⼯作、节点、命令和 API。
Java调⽤R语⾔R是统计计算的强⼤⼯具,JAVA是做应⽤系统的主流语⾔。
JAVA负责系统的构建,R⽤来做运算引擎,从⽽实现应⽤型和分析性相结合的系统。
⼀、Rserve(远程通信模式) Rserve是⼀个基于TCP/IP的服务器,通过⼆进制协议传输数据,可以提供远程连接,使得客户端语⾔能够调⽤R。
Rserve作为⼀个package发布在CRAN上,可以直接使⽤install.packages("Rserve")进⾏安装。
需要使⽤时在R控制台下加载该包,然后输⼊命令Rserve(),开启服务器就可以供客户端调⽤。
⾸先建⽴⼀个新的连接,然后就可以使⽤eval之类的⽅法将R中的表达式传到服务器端,通过R求值后传回JAVA中REXP类型的变量,然后打印出来,整个过程⾮常简单。
由于不需要对R进⾏初始化,因此速度会⽐较快。
在其他系统下可以同时建⽴多个连接,但是在Windows下只允许同时打开⼀个连接,后续的连接都会共有相同的命名空间。
1、Rserve安装和启动(windows环境) ⽅法⼀:前提:安装并配置了R语⾔ 第⼀次启动安装Rserve包: install.packages("Rserve") 第⼀次启动加载Rserve包: library(Rserve) 启动Rserve服务: Rserve() 关闭Rconnection连接: 关闭Rconnection连接⽤rc.close(); ⽅法⼆:点击R⼯具栏上的“程序包”--》“设定CRAN镜像”--》China(xxx) —》确定 点击【程序包】—》安装程序包—》选择 rJava —>OK 点击【程序包】—》安装程序包—》选择 Rserve —>OK 点击【程序包】—》加载程序包—》选择 rJava —>OK 点击【程序包】—》加载程序包—》选择 Rserve —>OK 安装命令:install.packages("packageName") 加载命令:library(packageName) 启动命令:Rserve() 2.Java调⽤R 基本⽅法: Rconnection:连接R服务 eval():执⾏R语句 assgin():声明变量 REXP: asInteger(), asIntegers(), asString(), asDouble(), asDoubles(), asList()获取相应类型的数据 引⽤R架包或者添加maven配置:<!--REngine Java Interface to R --><dependency><groupId>org.rosuda.REngine</groupId><artifactId>REngine</artifactId><version>2.1.0</version></dependency><dependency><groupId>org.rosuda.REngine</groupId><artifactId>Rserve</artifactId><version>1.8.1</version></dependency> 实例1:求⼀个数组⾥⾯的最⼤值//建⽴连接RConnection rc=new RConnection();//构建数据int[] datas={314,451,56,24,631};//声明变量,相当于在R命令⾏中输⼊data<-datas命令rc.assign("data",datas);//执⾏R语句,相当于在R命令⾏中输max(data)命令REXP rexp=rc.eval("max(data)");//REXP. asXxx()返回相应类型的数据,如果结果类型不符会出错System.out.println(rexp.asInteger());rc.close(); 实例2:调⽤⾃定义函数 创建R⽂件test.R myFunc<-function(data){ x<-data+2; }RConnection rc = new RConnection();// test.R的路径String fileName = "D:\\test.R";rc.assign("fileName", fileName);//执⾏test.R脚本,执⾏这⼀步才能调⽤⾥⾯的⾃定义函数myFunc,如果不⾏,就在R⼯具上也执⾏⼀下test.R脚本rc.eval("source(fileName)");String num = "3";//调⽤myFunc函数REXP rexp=rc.eval("myFunc("+num+")");//返回类型是⼀个整数类型,所以⽤asIntegerSystem.out.println(rexp.asInteger());rc.close(); 在R-x.x.x\library\Rserve\client\java\Rserve\test⽬录下有测试⽤例可以参考。