小编jos*_*ino的帖子

如何调用私有内部类中存在的私有方法

我想测试一个私有内部类中存在的私有方法

 public class MyBigClass {
    private class MyInnerClass {
       private void wantedMethod() {
       }
    }
 }
Run Code Online (Sandbox Code Playgroud)

我想打电话wantedMethod() 来测试它

这是我的代码

Class[] classes = MyBigClass.class.getDeclaredClasses();
    for (int i = 0; i < classes.length; i++) {
        // this code print "MyInnerClass"
        System.out.println(">> inner classes >> " + classes[i].getSimpleName());
        if (classes[i].getSimpleName().equals("MyInnerClass")) {
            Class clazz = classes[i];
            // Constructor c=clazz.getConstructor();
            Method[] methods = clazz.getDeclaredMethods();
            // this code print "wantedMethod"
            for (int j = 0; j < methods.length; j++) {
                System.out.println("inner class methods >>  " …
Run Code Online (Sandbox Code Playgroud)

java reflection private-methods

5
推荐指数
1
解决办法
6497
查看次数

混淆Java源代码以分发给客户端

我想知道是否有办法生成我的maven项目的模糊可构建版本并将其交给客户,混淆只是为了保护并使其难以窃取.

我正在使用proGuard来混淆jar,但是这个混淆是在ByteCode级别,就像它在这个线程中回答的那样Obfuscate Java源代码

如果无法进行混淆,我怎么能分发我的源代码并确保它不会被盗(或者只是通过组织不当来使其变得困难),尽管客户端应该能够构建和运行代码.

编辑:需要执行操作:

1-从源代码中删除所有注释.

2-将所有类合并到一个包中.

3-有无意义的类名:(例如A,B,C ......)

4-删除所有单元测试.

java obfuscation proguard source-code-protection maven

-3
推荐指数
1
解决办法
738
查看次数