估计是文件放的目录不对吧,直接本地打开是可以,但是路径不对tomcat就没有加载进去吧。。

解决方案 »

  1.   

    没太看明白我的意思,在将tomcat做成服务启动时,不能打开;tomcat直接采用start.bat能打开;文件的存放位置是一样的
      

  2.   

    以服务方式启动是没有Desktop的
      

  3.   

    肯定是路径的问题。你本地的机子上有E:\\workplace\\yijian\\WebRoot\\help.chm,但是服务器上有这个路径吗?
      

  4.   

    把chm文件扔到tomcat里面,相对路径访问
      

  5.   

    你的项目部署到tomcat之后,目录有可能发生改变了。不建议你用手写的文件路径,为什么不用servletContext获得路径呢。
      

  6.   

    你的项目部署到tomcat之后,目录有可能发生改变了。不建议你用手写的文件路径,为什么不用servletContext获得路径呢。try {
    String path=application.getRealPath("/");
    File helpFile = new File(path+"help.chm");
    Desktop.getDesktop().open(helpFile);
    } catch (Exception e) {
    System.out.print("打开帮助文档异常");
    }一样是有问题的
      

  7.   

    不是放在服务器上,是将tomcat做成服务后
      

  8.   


    默认windows是不允许服务进行桌面交互的,所以无法打开文件,把那个允许桌面交互的选上就可以了。
      

  9.   


    尝试了,不行哈,大神我win7的系统能打开,先是弹个交互神马的对话框,提示你有服务要进行桌面交互,确定后会黑屏,最后会只显示个记事本。ps:我打开的是文本文档
      

  10.   

    写个bat脚本,通过运行脚本打开帮助文档,这样子呢?
      

  11.   

    1.请确定Desktop在你的平台上是支持的
    2.请确定file确实存在
    3.请确定是否抛出了异常,根据异常检查问题(比如文件没有默认打开方式,文件不可读)
    if (!Desktop.isDesktopSupported()) {
    System.out.println("Desktop not supported.");
    return;
    }

    Desktop desktop = Desktop.getDesktop();
    File file = new File("D:\\test.chm");
    if (file.exists()) {
    desktop.open(file);
    System.out.println("Done.");
    } else {
    System.out.println("File not exist.");
    }