Как указать кроссплатформенный путь к иконке? - PullRequest
0 голосов
/ 15 января 2020

Я полный ноль в Java, мне просто нужно отредактировать часть исходного кода, и я застрял.

Итак, у меня есть следующий код:

package net.technicpack.legacywrapper;

import com.beust.jcommander.Parameter;
import com.beust.jcommander.internal.Lists;

import java.io.File;
import java.io.IOException;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Logger;

public final class StartupParameters {
    @SuppressWarnings("unused")
    private final String[] args;
    public StartupParameters(String[] args) {
        this.args = args;
        auth_player_name = args[0];
        auth_session = args[1];
    }
    @Parameter
    private List<String> parameters = Lists.newArrayList();

    private String auth_player_name;

    private String auth_session;

    @Parameter(names = {"--gameDir"}, description = "Pack directory")
    private String gameDir;

    @Parameter(names = {"--assetsDir"}, description = "Assets directory")
    private String assetsDir;

    @Parameter(names = {"--width"}, description = "Sets the width of the minecraft window to be fixed to this.")
    private int width = -1;

    @Parameter(names = {"--height"}, description = "Sets the height of the minecraft window to be fixed to this.")
    private int height = -1;

    @Parameter(names = {"--title"}, description = "The title bar text for the Minecraft frame.")
    private String title = "Minecraft";

    @Parameter(names = {"--icon"}, description = "The title bar icon for the Minecraft frame.")
    private String icon = "path to .ico";

    public List<String> getParameters() {
        return parameters;
    }

    public String getAuthPlayerName() { return auth_player_name; }
    public String getAuthSession() { return auth_session; }
    public String getGameDirectory() { return gameDir; }
    public String getAssetsDirectory() { return assetsDir; }
    public int getWidth() { return width; }
    public int getHeight() { return height; }
    public String getTitle() { return title; }
    public String getIconPath() { return icon; }
}

Собственно, та самая часть кода, которую нужно отредактировать:

@Parameter(names = {"--icon"}, description = "The title bar icon for the Minecraft frame.")
private String icon = "path to .ico";

Вместо «пути к .ico» мне нужно указать путь к значку здесь, но я не знаю как. Этот путь должен быть кроссплатформенным, чтобы все работало как на Windows, так и на Linux. Например, значок будет расположен по адресу:

Windows: C: / Users / Некоторый пользователь / AppData / Roaming / .gamefolder / res / icon.png

Или Linux: /home/someuser/.gamefolder/res/icon.png

Как указать эти пути в коде? Кроме того, я думаю, что было бы легче поместить значок в файл JAR, чтобы его можно было прочитать из него. Но опять же, я не знаю, как это сделать. Пожалуйста, помогите.

...