Jar with Sparks Framework只适用于控制台而不是双击

时间:2017-07-17 10:20:55

标签: java jar spark-java

结构是

  • program.jar
  • www(文件夹)

www是一个包含更改Spark文件的文件夹,所以我使用

externalStaticFileLocation("www");

我跑的时候

java -jar program.jar

http://localhost:8080/index.html有效

当我双击启动jar时

未找到网址返回404。

任何可以帮助我的人?​​

谢谢

2 个答案:

答案 0 :(得分:0)

我通常使用externalStaticFileLocation

的绝对路径

修改

我还有一个应用程序,为了开发目的,我获取了执行jar的路径。对你而言,我认为一个很好的解决方案是:

声明一个字符串,在我的应用程序中它是一个常量

    public static final String STATIC_FILES_LOCATION_DEV;

创建File实例并获取当前目录,然后连接www目录

    File f = new File("");
    STATIC_FILES_LOCATION_DEV = f.getAbsolutePath()
            + "/../www";

将它用作资源目录:

    externalStaticFileLocation(STATIC_FILES_LOCATION_DEV);

就是这样。

答案 1 :(得分:0)

我的回答是这个

    private static String getWWWDir() {
       String dir = new File("").getAbsolutePath() + "/www";
       File file = new File(dir);

       if(file.exists() && file.isDirectory()) {
           return file.getAbsolutePath();
       }
       else
       {
           String tmpDir = API.class.getProtectionDomain().getCodeSource().getLocation().getFile();
           file = new File(tmpDir);
           dir = file.getParent() + "/www";
           file = new File(dir);
           if(file.exists() && file.isDirectory()) {
               return file.getAbsolutePath();
           }
       }
       return null;
   }

我知道它不漂亮,但对我有用。

感谢你们的帮助