2
JFileChooser chooser = new JFileChooser();
JDialog dialog=new JDialog();
dialog.setAlwaysOnTop(true);
/*System.out.println("is always on top?"+dialog.isAlwaysOnTop());*/
chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);
int returnVal = chooser.showOpenDialog(dialog);

String path = null;

if(returnVal == JFileChooser.APPROVE_OPTION) {

    path=chooser.getSelectedFile().getAbsolutePath();

}

我已经在 Servlet 的方法中编写了这段代码。doGet当我部署在 linux 服务器中时出现以下异常:

java.awt.HeadlessException
    at java.awt.GraphicsEnvironment.checkHeadless(GraphicsEnvironment.java:159)

有谁知道如何克服这个?

4

5 回答 5

5

无头异常

在不支持键盘、显示器或鼠标的环境中调用依赖于键盘、显示器或鼠标的代码时引发。

于 2014-01-24T23:30:56.953 回答
3

你的 HTML 表单应该是这样的:

<form action="upload" method="post" enctype="multipart/form-data">
    <input type="file" name="file" />
    <input type="submit" />
</form>

然后,使用Apache Commons FileUpload,您可以在 Servlet 中处理上传的文件。有关更多信息,请参阅他们的用户指南常见问题解答

于 2013-03-27T12:35:37.977 回答
3

在 Fedora 和其他一些 Linux 发行版中,默认情况下只安装无头 Java 运行时。您可能需要安装完整的 java 运行时:

sudo yum install java-1.8.0-openjdk

来源:https ://github.com/chatty/chatty/issues/261#issuecomment-392228006

于 2019-04-08T14:55:45.637 回答
1

Web 应用程序通常在无头的后端服务器上运行。除了在 Applet 中运行的 GUI 之外,最好避免使用任何 GUI。

于 2013-03-27T12:29:40.777 回答
-1

如果你在低权限的 Linux 下运行它,你会得到:

java.lang.RuntimeException: Failed to create component for 'frame' reason: java.awt.HeadlessException
    at Pp$_run_closure1.doCall(Pp2.groovy:17)
    at Pp.run(Pp2.groovy:15)
    at Pp$run.call(Unknown Source)
    at Pp.main(Pp2.groovy:12)
Caused by: java.awt.HeadlessException

您必须以正确的权限运行它。

首先尝试使用最大权限:

sudo groovy MyClass.groovy

这应该可以解决您的问题。

于 2014-02-17T21:00:16.333 回答