之前一篇文章讲述linux如何转发jconsole的图形结果,其中涉及到 java.awt.headless=true,这次有朋友遇到这个问题,问题也查了半天未帮助其解决,为了更加详细的了解这个参数,故找了一些资料。
1:官方JDK中对于headless的支持说明
http://docs.oracle.com/javase/1.4.2/docs/guide/awt/AWTChanges.html#headless
重点在于:
Many of the methods in Toolkit and GraphicsEnvironment, with the exception of fonts, imaging, and printing, are changed to throw HeadlessException if a display, keyboard, and mouse are not supported
Applet, Button, Checkbox, Choice, FileDialog, Label, List, Menu, MenuBar, MenuComponent, MenuItem, PopupMenu, Scrollbar, ScrollPane, TextArea, TextComponent, Frame, Window, Dialog, JApplet, JFrame, JWindow, JDialog, and TextField. Canvas and Panel do not need to throw this exception since these can be given empty peers and treated as lightweights.
2:官方提供的使用headless模型的例子
Using Headless Mode in the Java SE Platform
http://java.sun.com/developer/technicalArticles/J2SE/Desktop/headless/
其中有以下例子 Canvas, Panel, Image components
Methods related to Canvas, Panel, and Image components do not need to throw a HeadlessException
because these components can be given empty peers and treated as lightweight components.
3:如何设置headless
http://stackoverflow.com/questions/2552371/setting-java-awt-headless-true-programmatically
这里提供了3种方法
1:System.setProperty("java.awt.headless", "true");
2:-Djava.awt.headless=true
3:通过反射设置java.awt.GraphicsEnvironment中这个属性的值为true
4:headless模式下处理图片的一个实例
java.awt.HeadlessException after setting java.awt.headless=true
http://www.theserverside.com/discussions/thread.tss?thread_id=52535
重点在于
对于headless支持不好的JFrame 使用FilteredImageSource 来处理。
FilteredImageSource myFilteredImageSource = new FilteredImageSource(image.getSource(), new CropImageFilter(x, y, crpHeight, crpWidth));
image = Toolkit.getDefaultToolkit().createImage(myFilteredImageSource);
具体这个用法我不是很清楚,因为没接触过,不过如果有同学遇到,可以借鉴下。
分享到:
相关推荐
export JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=false -Dfile.encoding=UTF-8 -Djava.net.preferIPv4Stack=true -Dawt.useSystemAAFontSettings=lcd -Dsun.java2d.xrender=true -Dsun.jnlp.fontAliasing=true -...
maxHttpHeaderSize="8192" URIEncoding="UTF-8" enableLookups="false" acceptCount="100" disableUploadTimeout="true" /> ``` 通过以上步骤,可以有效地提升Tomcat服务器的性能和稳定性,确保应用在高并发场景下...
使用Docker run 命令 docker run -d -p 9200:9200 -p 9300:9300 –name 用户自定义名字 容器ID 会看到一串字符串,一般情况下我们会误以为它启动成功 我们执行docker ps -a是发现它自动退出了 ...
适合人群:常规Java开发人员以及linux环境搭建人员 特点:jdk8免费版本最后一个稳定版本,避免了侵权风险,也提供了最大化的版本支持 安装步骤: windows:在环境变量中新增JAVA_HOME并指定jdk目录,然后在path中...
如果脚本中已经存在设置`JAVA_OPTIONS`的部分,只需在`JAVA_OPTIONS`后面添加`-Djava.awt.headless=true`。如果脚本中没有这部分内容,你需要手动添加一条新的行,设置`JAVA_OPTIONS`为`-Djava.awt.headless=true`。...
Djava.awt.headless=true -Dosgi.framework.extensions=com.ibm.cds -Xshareclasses:name=webspherev61_%g,groupAccess,nonFatal -Xscmx50M -Xbootclasspath/p:/opt/IBM/WebSphere/AppServer/java/jre/lib/ext/...
.../karyon-gradle$ KARYON_OPTS= " -Xmx2560m -Djava.awt.headless=true -Deureka.name=karyon -Deureka.region=us-west-2 -Deureka.port=80 -Deureka.us-west-2.availabilityZones=default -Dkaryon.serviceUrl....
例如,`java -jar -Djava.awt.headless=true yourjar.jar` 这样的命令可以实现隐藏窗口启动JAR应用。`-Djava.awt.headless=true` 参数指示JVM在无图形环境(headless mode)下运行,避免显示窗口。 - **end.bat**:...
JAVA_OPTS=”-Djava.awt.headless=true -Dfile.encoding=UTF-8 -server -Xms1024m -Xmx1024m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512m -XX:MaxPermSize=512m -XX:+DisableExplicitGC” -Xms –...
OPTIONS="-Djava.awt.headless=true -Djava.endorsed.dirs=$TOMCAT_HOME/endorsed -classpath $TOMCAT_HOME/bin/bootstrap.jar:$TOMCAT_HOME/bin/tomcat-juli.jar -Dcatalina.home=$TOMCAT_HOME -Dcatalina.base=$...
使用`System.setProperty("java.awt.headless", "true")`可以将系统设置为Headless模式。这样,Java应用程序在启动时就会使用Headless兼容的实现。对于那些需要在Headless环境下运行的组件,如生成图像或进行打印...
实例,以下给出1G内存环境下java jvm 的参数设置参考: 代码如下:JAVA_OPTS=”-server -Xms800m -Xmx800m -XX:PermSize=64M-XX:MaxNewSize=256m -XX:MaxPermSize=128m -Djava.awt.headless=true ”JAVA_OPTS=”-...
例如,在`%Tomcat_home%/bin/catalina.sh`文件中找到`-Djava.io.tmpdir="$CATALINA_TMPDIR"`之后,添加`-Djava.awt.headless=true`。然后,重新启动Tomcat,应用应该就能正确处理图形了。 总结来说,解决Java在...
sed -i 's/exec "\$JAVA"/exec "\$JAVA" -Djava.awt.headless=true/g' $CATALINA_HOME/bin/catalina.sh ``` 创建systemd服务单元文件,如`/etc/systemd/system/tomcat.service`: ```bash sudo nano /etc/systemd/...
例如,`-Djava.awt.headless=true`在没有图形界面的情况下运行Java应用。 7. **-verbose**: 提供详细输出,例如垃圾收集日志或类加载信息。`-verbose:gc`会显示详细的垃圾收集信息。 8. **-server**: 激活服务器级...
JAVA_OPTS='-Xms800m –Xmx1024m -XX:NewSize=128m -XX:PermSize=256M -XX:MaxPermSize=450M -Djava.awt.headless=true -Dcom.sun.management.jmxremote.port=17123 -Dcom.sun.management.jmxremote.ssl=false -...
这里,`-Xms256m -Xmx512m`调整了初始和最大堆内存的大小,而`–Djava.awt.headless=true`则表示Eclipse将在无图形界面模式下运行,有助于减少内存消耗。 ### 四、创建Eclipse.bat文件 为了进一步确保Eclipse能够...
XX:+TieredCompilation -XX:TieredStopAtLevel=1 -XX:SoftRefLRUPolicyMSPerMB=50 -Djava.awt.headless=true -Dhttps.protocols=TLSv1.2"在Windows上: set MAVEN_OPTS="-server -Xmx256m -XX:MetaspaceSize=128m -...
- **`-Djava.awt.headless=true`**:在没有图形界面的Linux服务器上,可以避免某些与图形操作相关的异常。 #### 四、并发配置优化 除了内存配置之外,还需要考虑服务器处理并发请求的能力。可以通过修改Tomcat的...
例如,`-Djava.awt.headless=true` 可以让Java在没有显示器的环境下运行。 9. **-agentlib**: 加载本地库,例如`-agentlib:hprof=cpu=samples`会启用CPU使用率的采样分析。 10. **-verbose**: 输出更多运行时信息...