测试环境:windowsxp+resin3.0.22+jdk1.4
测试页面(a.jsp):
<%@ page contentType="text/html;charset=GBK" %>
<%@page import="java.awt.Rectangle,java.awt.image.BufferedImage,java.io.File,javax.imageio.ImageIO,java.awt.Toolkit,java.awt.Robot" %> <%
try {
//拷贝屏幕到一个BufferedImage对象screenshot
BufferedImage screenshot = (new Robot()).createScreenCapture(new Rectangle(0, 0, 1024, 768));
File f = new File("d:/temp.jpg");
//将screenshot对象写入图像文件
ImageIO.write(screenshot,"jpg", f);
}
catch (Exception ex) {
System.out.println(ex);
}
%>
问题:当直接点击 resin目录下的httpd.exe运行时,程序能够正常把当前屏幕copy生成图片temp.jpg
但是当把resin加入windows的服务后,生成的temp.jpg图片内容就是一块黑色背景.
请问加入windows的服务后,为什么会有这个问题?两者有什么区别吗?
测试页面(a.jsp):
<%@ page contentType="text/html;charset=GBK" %>
<%@page import="java.awt.Rectangle,java.awt.image.BufferedImage,java.io.File,javax.imageio.ImageIO,java.awt.Toolkit,java.awt.Robot" %> <%
try {
//拷贝屏幕到一个BufferedImage对象screenshot
BufferedImage screenshot = (new Robot()).createScreenCapture(new Rectangle(0, 0, 1024, 768));
File f = new File("d:/temp.jpg");
//将screenshot对象写入图像文件
ImageIO.write(screenshot,"jpg", f);
}
catch (Exception ex) {
System.out.println(ex);
}
%>
问题:当直接点击 resin目录下的httpd.exe运行时,程序能够正常把当前屏幕copy生成图片temp.jpg
但是当把resin加入windows的服务后,生成的temp.jpg图片内容就是一块黑色背景.
请问加入windows的服务后,为什么会有这个问题?两者有什么区别吗?
有什么属性没有设置?
---------------
答:resin安装为windows的服务只用了最简单的:httpd -install .没有设置其它属性。
各位如果有兴趣,把这个简单的jsp运行下就能看到这个问题了。谢谢!
import java.awt.Dimension;
import java.awt.Rectangle;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.image.BufferedImage;
import java.io.File; import javax.imageio.ImageIO; /*******************************************************************
* 该JavaBean可以直接在其他Java应用程序中调用,实现屏幕的"拍照"
*****************************************************/ public class GuiCamera
{
private String fileName; //文件的前缀
private String defaultName = "GuiCamera";
static int serialNum=0;
private String imageFormat; //图像文件的格式
private String defaultImageFormat="png";
Dimension d = Toolkit.getDefaultToolkit().getScreenSize(); /****************************************************************
* 默认的文件前缀为GuiCamera,文件格式为PNG格式
****************************************************************/
public GuiCamera() {
fileName = defaultName;
imageFormat=defaultImageFormat;
} /****************************************************************
* 本构造支持JPG和PNG文件的存储
****************************************************************/
public GuiCamera(String s,String format) {
fileName = s;
imageFormat=format;
}
/****************************************************************
* 对屏幕进行拍照
****************************************************************/
public void snapShot() {
try {
//拷贝屏幕到一个BufferedImage对象screenshot
BufferedImage screenshot = (new Robot()).createScreenCapture(new
Rectangle(0, 0, (int) d.getWidth(), (int) d.getHeight()));
serialNum++;
//根据文件前缀变量和文件格式变量,自动生成文件名
String name=fileName+String.valueOf(serialNum)+"."+imageFormat;
File f = new File(name);
System.out.print("Save File "+name);
//将screenshot对象写入图像文件
ImageIO.write(screenshot, imageFormat, f);
System.out.print("..Finished!\n");
}
catch (Exception ex) {
System.out.println(ex);
}
} public static void main(String[] args)
{
GuiCamera cam= new GuiCamera("d:\\Hello", "png");// cam.snapShot();
}
}
我也是调试这个程序的时候,发现这个问题的。
等待高手解答!