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>
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>
相关文章推荐
- java 命令模式详解,敢不敢稍微不同一点
- 学习java的一点心得(一)
- 关于SSH整合的一点心得
- Java中关于enum的一点心得
- java使用ssh连接Linux并执行命令
- 学习java方面的一点收获
- Java连接access数据库的一点小心得
- java使用SSH执行UNIX命令问题
- Java新手村出来的一点小心得
- SSH连接Tomcat发布java应用常用命令
- 学习java的一点心得(三)
- 关于java和jar命令的几点心得
- Java的一点收获(1)JComboBox
- Windows 和UNIX 上使用java –cp 命令的一点小小区别 分号和冒号的区别
- 关于java中字符编码的一点心得(zt)
- 关于java文件读写、字节流、字符流的一点心得
- java实现ssh登录执行shell命令及一些问题。
- java 间断执行多条命令ssh连接,有缺陷
- 学习java的一点心得(二)
- Java 调用Linux 管道命令的一点误区