LINUX+Apache+Tomcat服务器下怎样才能输出图片!

时间:2022-09-13 21:48:09
程序是参考下面的
http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=168989
在windows下调试都正常,但是在LINUX+Apache+Tomcat服务器上就无法输出图片,应该怎么配置呢!欢迎参与讨论!

15 个解决方案

#1


在 服务器 启动教本里面加入参数:


-Djava.awt.headless=true


!我就是那样做的, 后来好了!

让图片 连接到  准确地址!

#2


造成图片不能被服务器处理的主要原因:


jdk 图形处理需要 jvm, jvm 会去寻找图形环境,这里没有图形环境

通常,我们的 linux 服务器是不启动图形界面的,所以不能正常处理!

命令 java -Djava.awt.headless=true 就是启动 headless 服务器

不需要检测图形界面!

这个问题在一些 外国论坛里面说的很清楚!

#3


这个我试过了,没什么反映,是不是还需要什么插件之类,另外“让图片 连接到  准确地址!”是什么意思,图片都是得到在服务器上的物理路径啊!

#4


能发给我一个说得比较清楚的论坛帖子地址吗?

#5




你把你的错误提示, 说出来

我整理一下 给你一个详细的解决办法!

#6


java.awt.HeadlessException
        at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:121)
        at java.awt.Window.<init>(Window.java:274)
        at java.awt.Frame.<init>(Frame.java:401)
        at java.awt.Frame.<init>(Frame.java:366)
        at cn.com.s520.process.ValidateImageProcess.doStart(ValidateImageProcess.java:43)
        at net.apache.jsp.framework.controller.impl.MainServletProcessImpl.processRequest(MainServletProcessImpl.java:170)
        at net.apache.jsp.framework.controller.impl.MainServletProcessImpl.doRequest(MainServletProcessImpl.java:113)
        at net.apache.jsp.framework.controller.MainServlet.doGet(MainServlet.java:62)

#7


多谢多谢

#8


java.awt.HeadlessException
        at java.awt.GraphicsEnvironment.checkHeadless


? 你用的是 哪个 版本的 jdk ?

#9


jdk1.4

#10


对于一个Java服务器来说经常要处理一些图形元素,例如地图的创建或者图形和图表等。这些API基本上总是需要运行一个X-server以便能使用AWT(Abstract Window Toolkit,抽象窗口工具集)。然而,运行一个不必要的X-server并不是一种好的网络管理方式。

 
这个解决方案依赖于你的Java版本。如果你运行在JDK1.4上,那么你将有机会运行headless服务器。

 -Djava.awt.headless=true 
对于JDK1.3及更低的版本,有个来自eTeks的PJA工具包(Pure Java AWT Toolkit,纯Java AWT工具集)可以使用。它是一个在配置上与Sun的1.4版非常相似的headlessJava服务器,这种配置方式包含一组-D属性标志。

你需要下载相关的jar,将它们放到你的CLASSPATH中,然后设置下面的标志:

Dawt.toolkit=com.eteks.awt.PJAToolkit
 Djava.awt.graphicsenv=com.eteks.java2d.PJAGraphicsEnvironment 
在IBM的JDK下,你能找到下列所需的属性,这里我们将PJA的jar要放到lib/pja下:

Djava.awt.fonts=$JAVA_HOME/jre/lib/fonts
 Djava2d.font.usePlatformFont=false
 Duser.home=lib/pja 
你可以从eTeks网站上下载PJA工具包。



我用的是 jboss 服务器:

我得 jdk 是 1。4。2 的!

那么我在 服务器的启动脚本run.sh 里面加入了语句:

$JAVA_OPTS="-Djava.awt.headless=true";

你可以参照你的 启动脚本  在适当的位置写入!


#11




我们学校用的是 教育网 因为访问 外网要国际账号,我没有!

所以你在 vwww.google.com 里面 搜索一下 就有很多这样的信息


-Djava.awt.headless

#12


http://forum.java.sun.com/thread.jsp?forum=20&thread=132877

#13


呵呵~~
还是学生吗!

#14


主要问题已经解决,多谢,多谢!!
在LINUX下没有X-server会很麻烦,我改了图片的读取方式和缓存方式,终于可以运行了!
给分拉!

#15




我就是学生呀!

不过马上就要工作了!

#1


在 服务器 启动教本里面加入参数:


-Djava.awt.headless=true


!我就是那样做的, 后来好了!

让图片 连接到  准确地址!

#2


造成图片不能被服务器处理的主要原因:


jdk 图形处理需要 jvm, jvm 会去寻找图形环境,这里没有图形环境

通常,我们的 linux 服务器是不启动图形界面的,所以不能正常处理!

命令 java -Djava.awt.headless=true 就是启动 headless 服务器

不需要检测图形界面!

这个问题在一些 外国论坛里面说的很清楚!

#3


这个我试过了,没什么反映,是不是还需要什么插件之类,另外“让图片 连接到  准确地址!”是什么意思,图片都是得到在服务器上的物理路径啊!

#4


能发给我一个说得比较清楚的论坛帖子地址吗?

#5




你把你的错误提示, 说出来

我整理一下 给你一个详细的解决办法!

#6


java.awt.HeadlessException
        at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:121)
        at java.awt.Window.<init>(Window.java:274)
        at java.awt.Frame.<init>(Frame.java:401)
        at java.awt.Frame.<init>(Frame.java:366)
        at cn.com.s520.process.ValidateImageProcess.doStart(ValidateImageProcess.java:43)
        at net.apache.jsp.framework.controller.impl.MainServletProcessImpl.processRequest(MainServletProcessImpl.java:170)
        at net.apache.jsp.framework.controller.impl.MainServletProcessImpl.doRequest(MainServletProcessImpl.java:113)
        at net.apache.jsp.framework.controller.MainServlet.doGet(MainServlet.java:62)

#7


多谢多谢

#8


java.awt.HeadlessException
        at java.awt.GraphicsEnvironment.checkHeadless


? 你用的是 哪个 版本的 jdk ?

#9


jdk1.4

#10


对于一个Java服务器来说经常要处理一些图形元素,例如地图的创建或者图形和图表等。这些API基本上总是需要运行一个X-server以便能使用AWT(Abstract Window Toolkit,抽象窗口工具集)。然而,运行一个不必要的X-server并不是一种好的网络管理方式。

 
这个解决方案依赖于你的Java版本。如果你运行在JDK1.4上,那么你将有机会运行headless服务器。

 -Djava.awt.headless=true 
对于JDK1.3及更低的版本,有个来自eTeks的PJA工具包(Pure Java AWT Toolkit,纯Java AWT工具集)可以使用。它是一个在配置上与Sun的1.4版非常相似的headlessJava服务器,这种配置方式包含一组-D属性标志。

你需要下载相关的jar,将它们放到你的CLASSPATH中,然后设置下面的标志:

Dawt.toolkit=com.eteks.awt.PJAToolkit
 Djava.awt.graphicsenv=com.eteks.java2d.PJAGraphicsEnvironment 
在IBM的JDK下,你能找到下列所需的属性,这里我们将PJA的jar要放到lib/pja下:

Djava.awt.fonts=$JAVA_HOME/jre/lib/fonts
 Djava2d.font.usePlatformFont=false
 Duser.home=lib/pja 
你可以从eTeks网站上下载PJA工具包。



我用的是 jboss 服务器:

我得 jdk 是 1。4。2 的!

那么我在 服务器的启动脚本run.sh 里面加入了语句:

$JAVA_OPTS="-Djava.awt.headless=true";

你可以参照你的 启动脚本  在适当的位置写入!


#11




我们学校用的是 教育网 因为访问 外网要国际账号,我没有!

所以你在 vwww.google.com 里面 搜索一下 就有很多这样的信息


-Djava.awt.headless

#12


http://forum.java.sun.com/thread.jsp?forum=20&thread=132877

#13


呵呵~~
还是学生吗!

#14


主要问题已经解决,多谢,多谢!!
在LINUX下没有X-server会很麻烦,我改了图片的读取方式和缓存方式,终于可以运行了!
给分拉!

#15




我就是学生呀!

不过马上就要工作了!