Java在Linux下 不能处理图形的解决办法

java在图形处理时调用了本地的图形处理库。在利用Java作图形处理(比如:图片缩放,图片签名,生成报表)时,如果运行在windows上不会出问题。如果将程序移植到Linux/Unix上的时候有可能出现图形不能显示的错误。

提示信息:"Can‘t connect to X11 window server"这是由于Linux的图形处理需要一个X Server服务器。

解决办法:

  1. 如果服务器上安装有图形界面,可以通过设置环境变量:DISPALY=127.0.0.1:0.0解决。
  2. 如果没有安装图形界面,可以在Java运行时加上参数:-Djava.awt.headless=true。
  3. 使用PJA库来代替本地图形处理库。

Tomcat的修改如下:

打开 %Tomcat_home%/bin/catalina.sh 文件

位置1:在-Djava.io.tmpdir="$CATALINA_TMPDIR"后,启动Tomcat的脚本中加上:-Djava.awt.headless=true

"$_RUNJAVA" $JAVA_OPTS $CATALINA_OPTS
-Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS"
-classpath "$CLASSPATH"
-Dcatalina.base="$CATALINA_BASE"
-Dcatalina.home="$CATALINA_HOME"
-Djava.io.tmpdir="$CATALINA_TMPDIR"
-Djava.awt.headless=true
org.apache.catalina.startup.Bootstrap "[email protected]" start
>> "$CATALINA_BASE"/logs/catalina.out 2>&1 &
if [ ! -z "$CATALINA_PID" ]; then
echo $! > $CATALINA_PID fi
fielif [ "$1" = "stop" ] ; then

位置2:JAVA_OPTS="xxx -Djava.awt.headless=true"

保存后,重新启动就可以处理图形了。

时间: 2024-10-14 09:49:05

Java在Linux下 不能处理图形的解决办法的相关文章

Linux 下WordPress FTP帐号解决办法

自己用Ubuntu搭建WordPress后在更换主题时提示需要输入FTP帐号和密码,解决办法主要是把WordPress主目录的权限所有者弄为Apache: 找到apache服务所使用的用户名和用户组 ps -aux 找到 /usr/sbin/apach 的用户名,它就是apache的所有者,我这里是 www-data sudo chown www-data:www-data -R /var/www/html/ 因为我的WordPress的主目录是 /var/www/html/ 然后刷新WordP

远程连接linux下的mysql Err1045 Err2003解决办法

本人linux系统 Centos7 1.Err2003 我个人的情况是因为linux中防火墙开启并阻止了3306这个mysql端口的远程连接 解决办法: CentOS 7.0默认使用的是firewall作为防火墙,现在要将其关闭 systemctl stop firewalld.service #停止firewallsystemctl disable firewalld.service #禁止firewall开机启动firewall-cmd --state #查看默认防火墙状态(关闭后显示not

常见的Linux下的段错误 及解决办法

一.段错误 所谓的段错误就是指访问的内存超出了系统所给这个程序的内存空间,通常这个值是由gdtr来保存的,他是一个48位的寄存器,其中的32位是保存由它指向的gdt表,后13位保存相应于gdt的下标,最后3位包括了程序是否在内存中以及程序的在cpu中的运行级别,指向的gdt是由以64位为一个单位的表,在这张表中就保存着程序运行的代码段以及数据段的起始地址以及与此相应的段限和页面交换还有程序运行级别还有内存粒度等等的信息.一旦一个程序发生了越界访问,cpu就会产生相应的异常保护,于是segment

关于.Net Core 部署在Linux下连接SqlServer数据库超时解决办法

.Net Core 在 Linux 下连接 SqlServer 需要 SqlServer2008 SP3或以上版本,或SqlServer2012,或SqlServer2014. 如果SqlServer2008低于SP3版本,会出现连接超时的问题. 解决办法: 官方下载SqlServer 2008 Sp3 补丁 https://download.microsoft.com/download/9/6/4/964BB4EC-FC28-4DA7-9295-7D4A8FDBE1A4/CHS/SQLServ

关于 通过http请求 无法访问Linux下的ftp服务的解决办法!

解决办法:1.首先进入到NGINX配置文件下面: 然后继续往下: 其中 "server_name"表示的是本机IP 也可设置成 "localhost","location"表示本地的意思 . 先看根目录"root /home/ftpuser/hry/"表示的是根路径, "images"表示本地路径. 区别 比如访问路径"http://192.168.64.128/home/ftpuser/hry/

linux 下使用yum命令出错解决办法

linux系统使用yum命令时,遇到出现以下错误: Loaded plugins: fastestmirror Existing lock /var/run/yum.pid: another copy is running as pid 3404. Another app is currently holding the yum lock; waiting for it to exit... The other application is: yum Memory : 41 M RSS (253

Xshell连接Linux下Oracle无法回退的解决办法

使用Xshell 连接远程Linux 数据库服务器,当切换到sqlplus 控制台时,输入错误字符的时候,使用回退键修改时,显示^H. 解决方法:$ stty erase ^H : 与退格键相关的设置是erase,它表示删除最后一个字符.  stty(set tty,设置tty)命令用于检查和修改当前注册的终端的通信参数 可以在stty命令中使用-a查看当前注册终端的设置情况. $ stty -a 如果在当前窗口执行的话,只对当前的窗口有效,下次登陆的时候还需要重新设置,可以把这个命令写入she

29. Xshell连接Linux下Oracle无法回退的解决办法

使用Xshell 连接远程Linux 数据库服务器,当切换到sqlplus 控制台时,输入错误字符的时候,使用回退键修改时,显示^H. 解决方法:切换至root用户,直接输入stty erase ^H即可,$ stty erase ^H : 与退格键相关的设置是erase,它表示删除最后一个字符.stty(set tty,设置tty)命令用于检查和修改当前注册的终端的通信参数 可以在stty命令中使用-a查看当前注册终端的设置情况. $ stty -a 如果在当前窗口执行的话,只对当前的窗口有效

Linux下,tomcat端口被占用解决办法

netstat-->查看网络端口与进程号 netstat -anp|grep 8080 直接查看指定端口的进程pid #结果为 tcp        0      0 :::8080                     :::*                        LISTEN      9019/java 则9019为8080这个端口的tomcat进程的pid, 然后kill这个进程:kill -9 9019 [[email protected] dev008]# netstat