带有 Sparks Framework 的 Jar 仅适用于控制台而不是双击
Jar with Sparks Framework only works right with console not with double click
结构是
- program.jar
- www(文件夹)
www 是一个包含 Spark 更改文件的文件夹,所以我使用
externalStaticFileLocation("www");
当我 运行
java -jar program.jar
http://localhost:8080/index.html 有效
当我双击启动 jar 时
未找到urlreturn404。
谁能帮帮我?
谢谢
我通常使用绝对路径 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);
就是这样。
我的答案是这样的
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;
}
我知道它不漂亮,但它适合我。
感谢你们的帮助
结构是
- program.jar
- www(文件夹)
www 是一个包含 Spark 更改文件的文件夹,所以我使用
externalStaticFileLocation("www");
当我 运行
java -jar program.jar
http://localhost:8080/index.html 有效
当我双击启动 jar 时
未找到urlreturn404。
谁能帮帮我?
谢谢
我通常使用绝对路径 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);
就是这样。
我的答案是这样的
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;
}
我知道它不漂亮,但它适合我。
感谢你们的帮助