您的位置:首页 > 编程语言 > Java开发

java 和 ssh命令的一点收获心得

2012-07-17 16:19 225 查看
java读取配置文件,和结果处理:

String url = "D://workspace//Web//WebContent//WEB-INF//nodeIp.properties";

String empUrl = url.replace("%20", " ");// 如果你的文件路径中包含空格,是必定会报错的

System.out.println(empUrl);

File files = new File(empUrl);

try {

InputStream in = new BufferedInputStream(new FileInputStream(files));

BufferedReader bReader = new BufferedReader(new InputStreamReader(in));

String Result = null;

while((Result = bReader.readLine()) != null)

{

Result = Result.trim(); //清除多余空格

System.out.println(",,,,,,,nodeIp="+Result );

nodeName[Num] = Result.substring(0,Result.indexOf("="));

nodeIp[Num] = Result.substring(Result.indexOf("=")+1,Result.length());

System.out.println(",,,,,,,nodeName="+nodeName[Num]);

System.out.println(",,,,,,,nodeIp="+nodeIp[Num] );

Num++;

}

bReader.close();

in.close();

} catch (IOException e) {

e.printStackTrace();

}

心得:1.文件绝对路径需要经过除空格处理,否则可能出现读取不到的错误。

2.还有不能将while((Result = bReader.readLine().trim()) != null)放在一起,否则会出现空指针错误。

java 执行Linux ssh命令

String[]cmd = {"ssh","IP","sh","/root/excute.sh","2>/dev/null","-c"}

Process pro = null;

BufferedReader br = null;

pro = Runtime.getRuntime().exec(cmd);

pro.waitFor();

br = new BufferedReader(new InputStreamReader(pro.getInputStream()));

String result = null;

if((result = br.readLine())== null)

{

isFirst = false;

}

result=result.trim(); //清除多余空格

System.out.println(result);

心得:1.ssh 远程执行可以用建立2台机子信任关系的方法,跳过输入密码环节。

2.用java获取结果时,肯能需要对linux命令加“-c”以保证最后能够获取正确的值。

jfreeChart 插件画柱形图

double[][] data = new double[][] {{count[i]}};

String[] rowKeys = rowkeys[i];

String[] columnKeys = columnkeys[j];

CategoryDataset dataset = DatasetUtilities.createCategoryDataset(rowKeys, columnKeys, data);

JFreeChart chart = ChartFactory.createBarChart3D(ChartName[i],

"type",

"Utilization rate",

dataset,

PlotOrientation.VERTICAL,

true,

true,

false);

CategoryPlot plot = chart.getCategoryPlot();

//设置网格背景颜色

plot.setBackgroundPaint(Color.green);

//设置网格竖线颜色

plot.setDomainGridlinePaint(Color.pink);

//设置网格横线颜色

plot.setRangeGridlinePaint(Color.pink);

//显示每个柱的数值,并修改该数值的字体属性

org.jfree.chart.axis.CategoryAxis domainAxis = plot.getDomainAxis();

domainAxis.setLowerMargin(0.1);//设置距离图片左端距离此时为10%

domainAxis.setUpperMargin(0.1);//设置距离图片右端距离此时为百分之10

domainAxis.setCategoryLabelPositionOffset(10);//图表横轴与标签的距离(10像素)

domainAxis.setCategoryMargin(0.2);//横轴标签之间的距离20%

//数据轴精度

NumberAxis na = (NumberAxis) plot.getRangeAxis();

na.setAutoRangeIncludesZero(true);

DecimalFormat df = new DecimalFormat("#0.0000");

//数据轴数据标签的显示格式

na.setNumberFormatOverride(df);

org.jfree.chart.axis.ValueAxis rAxis = plot.getRangeAxis();

rAxis.setLowerBound(0);

rAxis.setFixedAutoRange(1);

rAxis.setRange(0.0000, 1.0000);

BarRenderer3D renderer = new BarRenderer3D();

renderer.setBaseItemLabelGenerator(new StandardCategoryItemLabelGenerator());

renderer.setBaseItemLabelsVisible(true);

//默认的数字显示在柱子中,通过如下两句可调整数字的显示

//注意:此句很关键,若无此句,那数字的显示会被覆盖,给人数字没有显示出来的问题

renderer.setBasePositiveItemLabelPosition(new ItemLabelPosition(ItemLabelAnchor.OUTSIDE12, TextAnchor.BASELINE_LEFT));

renderer.setItemLabelAnchorOffset(10D);

//设置每个地区所包含的平行柱的之间距离

renderer.setItemMargin(0.2);

plot.setRenderer(renderer);

//设置地区、销量的显示位置

//将下方的“Time”放到下方

plot.setDomainAxisLocation(AxisLocation.BOTTOM_OR_RIGHT);

//将默认放在左边的“利用率”放到左方

plot.setRangeAxisLocation(AxisLocation.BOTTOM_OR_LEFT);

String filename = ServletUtilities.saveChartAsPNG(chart, 240, 220, null, session);

String graphURL = request.getContextPath() + "/DisplayChart?filename=" + filename;

request.setAttribute("graphURL"+Number, graphURL);

主要步骤:1.先安装jfreeChart插件的jar包。方法是将jfreeChart插件lib目录下的包加入你所用到的lib包下。

2.写生成柱形图的代码,最后将图片以servlet流对象输出,这个需要配置相应的servlet。具体代码如下:

<servlet>

<servlet-name>DisplayChart</servlet-name>

<servlet-class>org.jfree.chart.servlet.DisplayChart</servlet-class>

</servlet>

<servlet-mapping>

<servlet-name>DisplayChart</servlet-name>

<url-pattern>/DisplayChart</url-pattern>

</servlet-mapping>

将这段代码加入你的web.xml中就可以。

3.jsp显示所需的图片方法:<img src="<%=request.getAttribute(picPath) %>" width=240 height=220 border=0>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: