
正文
java源代码侵权 java源代码在哪
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
【转】如何保护Java代码
以下从技术角度就常见的保护措施 和常用工具来看看如何有效保护java代码:1. 将java包装成exe 特点:将jar包装成可执行文件,便于使用,但对java程序没有任何保护。不要以为生成了exe就和普通可执行文件效果一样了。这些包装成exe的程序运行时都会将jar文件释放到临时目录,很容易获取。常用的工具有exe4j、jsmooth、NativeJ等等。jsmooth生成的exe运行时临时目录在exe所在目录中或是用户临时目录 中;exe4j生成的exe运行时临时目录在用户临时目录中;NativeJ生成的exe直接用winrar打开,然后用zip格式修复成一个jar文件,就得到了原文件。如果只是为了使用和发布方便,不需要保护java代码,使用这些工具是很好的选择。2. java混淆器特点:使用一种或多种处理方式将class文件、java源代码进行混淆处理后生成新的class,使混淆后的代码不易被反编译,而反编译后的代码难以阅 读和理解。这类混淆器工具很多,而且也很有成效。缺点:虽然混淆的代码反编译后不易读懂,但对于有经验的人或是多花些时间,还是能找到或计算出你代码中隐藏的敏感内容,而且在很多应用中不是全部代码都能混淆的,往往一些关键的库、类名、方法名、变量名等因使用要求的限制反而还不能混淆。3. 隔离java程序到服务端特点:把java程序放到服务端,让用户不能访问到class文件和相关配套文件,客户端只通过接口访问。这种方式在客户/服务模式的应用中能较好地保护java代码。缺点是:必须是客户/服务模式,这种特点限制了此种方式的使用范围;客户端因为逻辑的暴露始终是较为薄弱的环节,所以访问接口时一般都需要安全性认证。4. java加密保护特点:自定义ClassLoader,将class文件和相关文件加密,运行时由此ClassLoader解密相关文件并装载类,要起到保护作用必须自定 义本地代码执行器将自定义ClassLoader和加密解密的相关类和配套文件也保护起来。此种方式能很有效地保护java代码。缺点:可以通过替换JRE包中与类装载相关的java类或虚拟机动态库截获java字节码。 jar2exe属于这类工具。5. 提前编译技术(AOT) 特点:将java代码静态编译成本地机器码,脱离通用JRE。此种方式能够非常有效地保护java代码,且程序启动比通用JVM快一点。具有代表性的是GNU的gcj,可以做到对java代码完全提前编译,但gcj存在诸多局限性,如:对JRE 5不能完整支持、不支持JRE 6及以后的版本。由于java平台的复杂性,做到能及时支持最新java版本和JRE的完全提前编译是非常困难的,所以这类工具往往采取灵活方式,该用即时编译的地方还是 要用,成为提前编译和即时编译的混合体。缺点:由于与通用JRE的差异和java运用中的复杂性,并非java程序中的所有jar都能得到完全的保护;只能使用此种工具提供的一个运行环境,如果工具更新滞后或你需要特定版本的JRE,有可能得不到此种工具的支持。 Excelsior JET属于这类工具。6. 使用jni方式保护特点:将敏感的方法和数据通过jni方式处理。此种方式和“隔离java程序到服务端”有些类似,可以看作把需要保护的代码和数据“隔离”到动态库中,不同的是可以在单机程序中运用。缺点和上述“隔离java程序到服务端”类似。7. 不脱离JRE的综合方式保护特点:非提前编译,不脱离JRE,采用多种软保护方式,从多方面防止java程序被窃取。此种方式由于采取了多种保护措施,比如自定义执行器和装载器、加密、JNI、安全性检测、生成可执行文件等等,使保护力度大大增强,同样能够非常有效地保护java代码。缺点:由于jar文件存在方式的改变和java运用中的复杂性,并非java程序中的所有jar都能得到完全的保护;很有可能并不支持所有的JRE版本。 JXMaker属于此类工具。8. 用加密锁硬件保护特点:使用与硬件相关的专用程序将java虚拟机启动程序加壳,将虚拟机配套文件和java程序加密,启动的是加壳程序,由加壳程序建立一个与硬件相关的 受保护的运行环境,为了加强安全性可以和加密锁内植入的程序互动。此种方式与以上“不脱离JRE的综合方式保护”相似,只是使用了专用硬件设备,也能很好地保护java代码。缺点:有人认为加密锁用户使用上不太方便,且每个安装需要附带一个。从以上描述中我们可以看出:1. 各种保护方式都有其优缺点,应根据实际选用2. 要更好地保护java代码应该使用综合的保护措施3. 单机环境中要真正有效保护java代码,必须要有本地代码程序配合当然,安全都是相对的,一方面看你的保护措施和使用的工具能达到的程度,一方面看黑客的意愿和能力,不能只从技术上保护知识产权。总之,在java 代码保护方面可以采取各种可能的方式,不可拘泥于那些条条框框。
相关问答
Q1: 为啥淘宝上几乎没有java源码买
不合法。在淘宝上卖家卖的是别人在用的有版权的Java源码,售卖别人的额源码在没有经过同意的情况下是不合法的,几乎没有Java源码售卖,一些店铺出售的源码是正规自己的源码是可以进行购买的。Java是一门面向对象编程语言,1990年代初由詹姆斯·高斯林等人开发出Java语言的雏形。
Q2: 引用java源代码初级问题
import java.util.*;
是导入java.util.*这个包,这个例子里主要是调用了这个包里面的java.util.Scanner这个类
Scanner input =new Scanner(System.in)
其中System.in是接受控制台输入的数据
可以使用String s=input.next()来获得输入的字符串
还有一些其他方法比如int i=input.nextInt();输入的整型数字
double d=input.nextDouble()输入的Double型
。。。
Q3: 用java语言开发的软件并进行销售,算侵权吗?为什么?
你是不是看到Java使用了GPL开源软件协议?对于普通的采用GPL协议的库或软件,你可以对软件进行任何形式的修改,复制和销售。但是有一个限制,就是一旦你发布软件,就必须向你的发布对象公布你的源代码,否则就是不遵守GPL开原协议(就是说,如果你的软件中使用的基于GPL的库,并且你把你的软件卖个A,则必须同时向A提供源代码)。这是普通的GPL协议的规定,而java虽然也使用GPL开源协议,开源了java系统类库的代码,但是他的协议同时提出了一个例外条件,就是只要你修改java本身提供的类代码,你可以不向软件发布人员公开你的源码。这就是为什么java可以免费使用,而且在通常情况下可以不公开源代码的原因。
不过国内的版权意识比较淡薄,很多软件使用了GPL开源库,也没有公开源码,按严格意义上讲这是违反版权的,自由软件基金会可以按协议向法院起诉开发人员.............
Q4: 在网上下载了java的俄罗斯方块的源代码,用cmd运行总是不能通过编译,提示“无效的标志”
javac是编译的命令
运行时用java 包含主方法的类全名
建议学习一下java的基础再来运行程序
补充回答:根据java源代码侵权你的提示java源代码侵权,你的电脑上应该是装有JDK的java源代码侵权,并非不给你详细步骤java源代码侵权,只是需要看到代码才能准确地写出步骤,因为你连包名、类名都不知道
详细步骤:
1.先用javac 命令编译你下载的所有的.java文件
2.用java命令执行这些文件中的一个含有main()方法的那个文件
ps:执行第一步编译操作时,需要加上包名,查看包名的办法是,打开你要编译的一个.java文件,文件的第一行也就是以package 开头的一行,package 后面有一个空格,然后后面的内容就是包名,他的写法是package aaa.bbb.ccc;
你在编译时的操作:
在命令行输入:
javac aaa/bbb/ccc/Xxx.java
其中Xxx.java即是你打开这个文件的文件名
一般编译成功的标志就是你在命令行中输入上面那句话以后敲回车,然后光标直接跳到下一行,没有任何提示。然后你会发现,在这个.java文件的同路径下,多java源代码侵权了一个前缀相同,后缀为.class的文件
如果有一些英文提示表示你编译失败了,应该是你的包名或类名的原因,仔细修改吧!
执行第二步:
java aaa.bbb.ccc.Xxx
将编译时的/全部换成.
最后的.java就不要写了
如果执行成功了,你就可以看到那个俄罗斯方块的界面了。
说得还算详细吧,貌似有点罗索了,呵呵,楼主将就看吧,为了这10分我可真不易啊!
java源代码侵权的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java源代码在哪、java源代码侵权的信息别忘了在本站进行查找喔。







