मैं को जावास्क्रिप्ट का उपयोग कर कक्षा फ़ाइल से एक विधि को हटाने का प्रयास कर रहा हूं।जावस्सिस्ट का उपयोग करके एक विधि को कैसे हटाया जाए?
लक्ष्य वर्ग: "RemoveMethod"
।
लक्ष्य विधि: "DoubleCheck"
।
मेरे कोड:
package javassist;
import java.io.IOException;
import java.lang.reflect.Method;
import javassist.*;
public class cRepair {
public static void main(String[] args) throws NotFoundException, IOException, CannotCompileException{
ClassPool pool = ClassPool.getDefault();
CtClass ctClass = pool.get("javassist.RemoveMethod");
CtMethod ctm = ctClass.getDeclaredMethod("DoubleCheck");
ctClass.removeMethod(ctm);
ctClass.writeFile("C:/Users/workspace/Javaproject1/src/javassis");
}
}
फिर, फ़ाइल "javassist.jar" का उपयोग कर कोड चलाएँ:
javap -verbose RemoveMethod.class
विधि:
javac -cp javassist.jar cRepair.java
तब लक्ष्य वर्ग की जाँच "डबल चेक" अभी भी है!
यह वास्तव में अजीब लग रहा है। ऐसा क्यों हो सकता है और इसे कैसे ठीक किया जाए?
जावैक कॉल सिर्फ आपके कोड को संकलित करता है, यह इसे नहीं चलाता है। – muued
@muued, धन्यवाद आदमी। यह समझ में आता है! मैंने कोड "जावा सीआरपेयर" का उपयोग करके कोड चलाने की कोशिश की, लेकिन सिस्टम कहता है "मुख्य श्रेणी सीआरपीएयर नहीं मिला या लोड नहीं किया जा सका" – Delibz
रन 'जावा-सीपी जावसिस्ट.जर javassist.cRepair' – muued