http://expert.csdn.net/Expert/FAQ/FAQ_Index.asp?id=168989
在windows下调试都正常,但是在LINUX+Apache+Tomcat服务器上就无法输出图片,应该怎么配置呢!欢迎参与讨论!
15 个解决方案
#1
在 服务器 启动教本里面加入参数:
-Djava.awt.headless=true
!我就是那样做的, 后来好了!
让图片 连接到 准确地址!
-Djava.awt.headless=true
!我就是那样做的, 后来好了!
让图片 连接到 准确地址!
#2
造成图片不能被服务器处理的主要原因:
jdk 图形处理需要 jvm, jvm 会去寻找图形环境,这里没有图形环境
通常,我们的 linux 服务器是不启动图形界面的,所以不能正常处理!
命令 java -Djava.awt.headless=true 就是启动 headless 服务器
不需要检测图形界面!
这个问题在一些 外国论坛里面说的很清楚!
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)
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 ?
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";
你可以参照你的 启动脚本 在适当的位置写入!
这个解决方案依赖于你的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会很麻烦,我改了图片的读取方式和缓存方式,终于可以运行了!
给分拉!
在LINUX下没有X-server会很麻烦,我改了图片的读取方式和缓存方式,终于可以运行了!
给分拉!
#15
我就是学生呀!
不过马上就要工作了!
#1
在 服务器 启动教本里面加入参数:
-Djava.awt.headless=true
!我就是那样做的, 后来好了!
让图片 连接到 准确地址!
-Djava.awt.headless=true
!我就是那样做的, 后来好了!
让图片 连接到 准确地址!
#2
造成图片不能被服务器处理的主要原因:
jdk 图形处理需要 jvm, jvm 会去寻找图形环境,这里没有图形环境
通常,我们的 linux 服务器是不启动图形界面的,所以不能正常处理!
命令 java -Djava.awt.headless=true 就是启动 headless 服务器
不需要检测图形界面!
这个问题在一些 外国论坛里面说的很清楚!
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)
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 ?
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";
你可以参照你的 启动脚本 在适当的位置写入!
这个解决方案依赖于你的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会很麻烦,我改了图片的读取方式和缓存方式,终于可以运行了!
给分拉!
在LINUX下没有X-server会很麻烦,我改了图片的读取方式和缓存方式,终于可以运行了!
给分拉!
#15
我就是学生呀!
不过马上就要工作了!