Помогите Условие создания файла, который находится в Jar файле

Lisenochek

Активный участник
Пользователь
Баллы
76
Имя в Minecraft
Lisenochek
Народ, можете помочь. Помогите мне с условием создания файла, которые уже лежит в Jar файлике.
 
Если файла нет в указанной папки, то выгружаем файл из jar архива в указанную папку.
 
Вот мне и нужен этот метод выгрузки, т.к я не знаю, как его реализовать.
 
Java:
File file = new File(this.getDataFolder(), "unknown.file");
if (!file.exists()) {
    this.saveResource("unknown.file");
}
 
Крашит:
Код:
[14:03:40 ERROR]: Error occurred while enabling Realistic v1.4 beta (Is it up to date?)
java.lang.ExceptionInInitializerError
        at com.realistic.api.API.onEnable(API.java:43) ~[?:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) ~[server.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:340) [server.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [server.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:357) [server.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:317) [server.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.reload(CraftServer.java:741) [server.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.Bukkit.reload(Bukkit.java:535) [server.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25) [server.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [server.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:641) [server.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchServerCommand(CraftServer.java:627) [server.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.DedicatedServer.aO(DedicatedServer.java:412) [server.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:375) [server.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [server.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [server.jar:git-Spigot-db6de12-18fbb24]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_101]
Caused by: java.lang.NullPointerException
        at com.realistic.config.configMessage.<clinit>(configMessage.java:18) ~[?:?]
        ... 17 more
 
Разумеется. Я тебе дал только логику, имена подставляй сам.
 
Java:
fileMes = new File(pl.getDataFolder(), "message.yml");
    if (!fileMes.exists()) {
      pl.saveResource("message.yml", false);
Java:
    File fconfig = new File(pl.getDataFolder(), "config.yml");
    if (!fconfig.exists()) {
      pl.saveResource("config.yml", false);
Часть кода из плагина.
Java:
pl.
думаю догадалса.
 
Java:
fileMes = new File(pl.getDataFolder(), "message.yml");
    if (!fileMes.exists()) {
      pl.saveResource("message.yml", false);
Java:
    File fconfig = new File(pl.getDataFolder(), "config.yml");
    if (!fconfig.exists()) {
      pl.saveResource("config.yml", false);
Часть кода из плагина.
Java:
pl.
думаю догадалса.
А чем плох API.instance() ?
 
Рабочий код,проверил.
Java:
package ua.bohdan.project;

    import java.io.File;
    import org.bukkit.plugin.java.JavaPlugin;
    public class Main
     extends JavaPlugin
     {
     public void onEnable(){
         configmess();
     }
     public void onDisable(){
     }
     public void configmess(){
         File mesconfig = new File(getDataFolder(), "message.yml");
          // если файла нету.
           if (!mesconfig.exists())
           {
             //копируем файл из корня jar без замени.
           saveResource("message.yml", false);;
           }
     }
}
Может тут что та не так
Java:
API.instance()
В большей части случаев я использую
Код:
public class Message{
    private final Main pl;
    public Message(Main pl)
    {
        this.pl = pl;
    }
 
Последнее редактирование:
Рабочий код,проверил.
Java:
package ua.bohdan.project;

    import java.io.File;
    import org.bukkit.plugin.java.JavaPlugin;
    public class Main
     extends JavaPlugin
     {
     public void onEnable(){
         configmess();
     }
     public void onDisable(){
     }
     public void configmess(){
         File mesconfig = new File(getDataFolder(), "message.yml");
          // если файла нету.
           if (!mesconfig.exists())
           {
             //копируем файл из корня jar без замени.
           saveResource("message.yml", false);;
           }
     }
}
Может тут что та не так
Java:
API.instance()
Нет, крашит, да и сама операция проводится в другом классе, не в ГК.
 
Код:
    private final Главный_класс plugin;

    public ItemPatcher(Главный_класс Главный_класс) {
        this.plugin = Главный_класс;
    }
ну дальше File mesconfig = new File(plugin.getDataFolder(), "message.yml");
 
Неа, не работает ((
Блин, разве нету решений?
 
public void saveResourceAsStream(String name) {
return api.getClass().getClassLoader().getResourceAsStream("file.yml");
}

File f = new File(api.getDataFolder(), "file.yml");
if (!f.isFile()) {
try (InputStream i = saveResourceAsStream("file.yml") {
FileItils.copyInputStreamToFile(i, f);
} catch (IOExcpetion e) {
e.printStackTracke();
}
 
public void saveResourceAsStream(String name) {
return api.getClass().getClassLoader().getResourceAsStream("file.yml");
}

File f = new File(api.getDataFolder(), "file.yml");
if (!f.isFile()) {
try (InputStream i = saveResourceAsStream("file.yml") {
FileItils.copyInputStreamToFile(i, f);
} catch (IOExcpetion e) {
e.printStackTracke();
}
Очень много ошибок, не могу править код.
 
Назад
Верх