2017-05-03 12 views
-1

したがって、.jarファイルにあるクラスファイルを編集しようとしています(.jarファイルには他のクラスはほとんどありませんが、私はこれを編集しようとしています)。私はこの特定のクラスにソース.javaを使用しました。クラスからコンパイルするときにエラーが発生するため、コンパイルに問題があります。編集済みのJavaファイルをパッケージの一部であるクラスクラスファイルにコンパイルする方法[Minecraft関連]

問題が何であるかは誰か知りませんか?

また、逆コンパイルと再コンパイルを一切行わずに.jarファイルの.classファイルのコードを直接編集できるプログラムを知っていれば、本当に役に立ちます。

追加情報

  1. .jarファイルは、私は友人のためにアップ泡立てよMinecraftのmodのです。
  2. 元の.classのコード(作品):ファイルの

    package pw.cinque.cpsmod; 
    import cpw.mods.fml.common.eventhandler.SubscribeEvent; 
    import cpw.mods.fml.common.gameevent.TickEvent; 
    import cpw.mods.fml.common.gameevent.TickEvent$ClientTickEvent; 
    import net.minecraftforge.client.event.MouseEvent; 
    
    import cpw.mods.fml.common.eventhandler.SubscribeEvent; 
    import cpw.mods.fml.common.gameevent.TickEvent; 
    import net.minecraftforge.client.event.MouseEvent; 
    import pw.cinque.cpsmod.CPSMod; 
    
    public class ClickListener 
    { 
        public ClickListener() {} 
    
        private boolean hasClickedThisTick = false; 
    
        @cpw.mods.fml.common.eventhandler.SubscribeEvent 
        public void onMouse(MouseEvent event) { 
        if (button != 0) { 
         return; 
        } 
    
        if ((CPSMod.preventDoubleclicks) && (buttonstate) && (hasClickedThisTick)) { 
         event.setCanceled(true); 
         return; 
        } 
    
        if (buttonstate) { 
         hasClickedThisTick = true; 
         CPSMod.addClick(); 
        } 
        } 
    
        @cpw.mods.fml.common.eventhandler.SubscribeEvent 
        public void onClientTick(cpw.mods.fml.common.gameevent.TickEvent.ClientTickEvent event) { 
        hasClickedThisTick = false; 
        } 
    } 
    
  3. コードIは、編集:

    package pw.cinque.cpsmod; 
    
    import cpw.mods.fml.common.eventhandler.SubscribeEvent; 
    import cpw.mods.fml.common.gameevent.TickEvent; 
    import cpw.mods.fml.common.gameevent.TickEvent$ClientTickEvent; 
    import net.minecraftforge.client.event.MouseEvent; 
    
    import cpw.mods.fml.common.eventhandler.SubscribeEvent; 
    import cpw.mods.fml.common.gameevent.TickEvent; 
    import net.minecraftforge.client.event.MouseEvent; 
    import pw.cinque.cpsmod.CPSMod; 
    
    public class ClickListener { 
        private boolean hasClickedThisTick = false; 
        int newVar = 0; 
        @SubscribeEvent 
        public void onMouse(MouseEvent event) { 
         if (event.button != 0) { 
          return; 
         } 
         if (CPSMod.preventDoubleclicks && event.buttonstate && this.hasClickedThisTick) { 
          event.setCanceled(true); 
          return; 
         } 
         if (event.buttonstate) 
         { 
          this.hasClickedThisTick = true; 
          CPSMod.addClick(); 
          newVar = CPSMod.getClicks();    
          if(newVar > 5) 
          { 
        CPSMod.addClick(); 
    
        } 
    } 
    } 
    
    @SubscribeEvent 
    public void onClientTick(TickEvent.ClientTickEvent event) { 
        this.hasClickedThisTick = false; 
    } 
    } 
    
  4. をこれらは、私はそれをコンパイルしようとすると、私が取得エラーメッセージです。

ClickListener.java:2: error: package cpw.mods.fml.common.eventhandler does not exist 
    import cpw.mods.fml.common.eventhandler.SubscribeEvent; 
              ^
ClickListener.java:3: error: package cpw.mods.fml.common.gameevent does not exist 
    import cpw.mods.fml.common.gameevent.TickEvent; 
             ^
ClickListener.java:4: error: package cpw.mods.fml.common.gameevent does not exist 
    import cpw.mods.fml.common.gameevent.TickEvent$ClientTickEvent; 
             ^
ClickListener.java:5: error: package net.minecraftforge.client.event does not exist 
    import net.minecraftforge.client.event.MouseEvent; 
             ^
ClickListener.java:7: error: package cpw.mods.fml.common.eventhandler does not exist 
import cpw.mods.fml.common.eventhandler.SubscribeEvent; 
            ^
ClickListener.java:8: error: package cpw.mods.fml.common.gameevent does not exist 
import cpw.mods.fml.common.gameevent.TickEvent; 
            ^
ClickListener.java:9: error: package net.minecraftforge.client.event does not exist 
import net.minecraftforge.client.event.MouseEvent; 
            ^
ClickListener.java:10: error: cannot find symbol 
import pw.cinque.cpsmod.CPSMod; 
        ^
    symbol: class CPSMod 
    location: package pw.cinque.cpsmod 
ClickListener.java:17: error: cannot find symbol 
    public void onMouse(MouseEvent event) { 
         ^
    symbol: class MouseEvent 
    location: class ClickListener 
ClickListener.java:40: error: package TickEvent does not exist 
    public void onClientTick(TickEvent.ClientTickEvent event) { 
            ^
ClickListener.java:16: error: cannot find symbol 
    @SubscribeEvent 
    ^
    symbol: class SubscribeEvent 
    location: class ClickListener 
ClickListener.java:39: error: cannot find symbol 
    @SubscribeEvent 
    ^
    symbol: class SubscribeEvent 
    location: class ClickListener 
ClickListener.java:21: error: cannot find symbol 
     if (CPSMod.preventDoubleclicks && event.buttonstate && this.hasClickedThisTick) { 
      ^
    symbol: variable CPSMod 
    location: class ClickListener 
ClickListener.java:25: error: illegal start of type 
     if (event.buttonstate) { 
     ^
ClickListener.java:27: error: cannot find symbol 
      CPSMod.addClick(); 
      ^
    symbol: variable CPSMod 
    location: class ClickListener 
ClickListener.java:28: error: cannot find symbol 
     gay = CPSMod.getClicks(); 
      ^
    symbol: variable CPSMod 
    location: class ClickListener 
ClickListener.java:33: error: cannot find symbol 
      CPSMod.addClick(); 
     ^
    symbol: variable CPSMod 
    location: class ClickListener 
17 errors 

答えて

0

あなたはそれ以外の場合は動作しません、すべての依存関係と、そのクラスをコンパイルする必要があります。おそらく、その.jarからすべてのファイルを取得し、必要な変更を加えてから、もう一度コンパイルして圧縮する必要があります。

関連する問題