代码编译打包什么意思
这是因为你的程序用到了包(Package),你注意生成的Test.class文件已经被编译到当前目录的org/test/子目录下。
因此
你的javac -d . Test.java是对的,
但运行命令应该改成:
java org.test.Test
这样就能运行了。
Ⅱ 编译是什么意思
编译是指编写的源程序产生目标程序的过程。
编译(compilation , compile) 1、利用编译程序从源语言编写的源程序产生目标程序的过程。 2、用编译程序产生目标程序的动作。 编译就是把高级语言变成计算机可以识别的2进制语言,计算机只认识1和0,编译程序把人们熟悉的语言换成2进制的。
编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息。
编译语言是一种以编译器来实现的编程语言。它不像直译语言一样,由解释器将代码一句一句运行,而是以编译器,先将代码编译为机器码,再加以运行。理论上,任何编程语言都可以是编译式,或直译式的。它们之间的区别,仅与程序的应用有关。
词法分析
词法分析的任务是对由字符组成的单词进行处理,从左至右逐个字符地对源程序进行扫描,产生一个个的单词符号,把作为字符串的源程序改造成为单词符号串的中间程序。执行词法分析的程序称为词法分析程序或扫描器。
源程序中的单词符号经扫描器分析,一般产生二元式:单词种别;单词自身的值。单词种别通常用整数编码,如果一个种别只含一个单词符号,那么对这个单词符号,种别编码就完全代表它自身的值了。若一个种别含有许多个单词符号,那么,对于它的每个单词符号,除了给出种别编码以外,还应给出自身的值。
词法分析器一般来说有两种方法构造:手工构造和自动生成。手工构造可使用状态图进行工作,自动生成使用确定的有限自动机来实现。
语法分析
编译程序的语法分析器以单词符号作为输入,分析单词符号串是否形成符合语法规则的语法单位,如表达式、赋值、循环等,最后看是否构成一个符合要求的程序,按该语言使用的语法规则分析检查每条语句是否有正确的逻辑结构,程序是最终的一个语法单位。编译程序的语法规则可用上下文无关文法来刻画。
语法分析的方法分为两种:自上而下分析法和自下而上分析法。自上而下就是从文法的开始符号出发,向下推导,推出句子。而自下而上分析法采用的是移进归约法,基本思想是:用一个寄存符号的先进后出栈,把输入符号一个一个地移进栈里,当栈顶形成某个产生式的一个候选式时,即把栈顶的这一部分归约成该产生式的左邻符号。
以上内容参考网络-编译
Ⅲ python程序代码混淆、编译、打包、运行(桌面程序防破解向)
像Python这种解释性的语言,要想私有化部署的同时又保护好源码,就像是对于鱼和熊掌的追求。
虽然做不到尽善尽美,但是对代码进行混淆,增加一点破解的难度,或许能规避一些泄露的风险。
本次演示环境:linux
确保要发布的包根目录("demo")中有__main__.py文件,这个是程序执行入口。
编译
批量改名.pyc文件
移动.pyc文件
清理.py文件
清理__pycache__文件夹
打包成zip
运行时只要将zip文件作为参数即可
最终整合脚本
调用方式
对于在变量和函数名上的混淆有点小儿科,而对于跨文件的类名的混淆又太容易实现。
所以对于混淆程度的取舍,要视工程的规模而定。
2.1 混淆工具pyminifier
在原来的工具 pyminifier上修复了几个bug。
安装:
python3 安装
或者clone下来,自行安装
使用例子
2.2 源码变更
不同的配置对于源码的要求不同,以下是笔者踩过的坑。
其他混淆想法
结合混淆、编译和打包,尝试出以下发布脚本。
主要的思路 :创建一个工作目录tmp,然后在此目录下混淆、编译python代码,完成后把内容打包成pyc文件,再将pyc文件和其他配置文件移动到dist,发布dist即可。
混淆的目的是最大程度保护源码,在发布到客户端后不被轻易破解。
Ⅳ Java程序中为什么要打包啊
一般分为jar包和war包
源码编译后的war包一般是用来部署到服务器上 让容器运行起来,成为一个成型的项目。
源码编译后的jar包一般是用来为其他编码服务,项目中,引入jar包就可以直接调用别人写好的各种方法,例如jdk中你就可以找到很多jar包,用360压缩(或其他)打开你可以看到其实都是.calss类,是源码编译后的文件。
Ⅳ 做好程序为什么要打包啊程序打包是什么意思啊本人不懂编程,请教一下啦。
打包其实简单点说就是把你做好的东西做成安装程序,被人用的时候只要双击安装程序一切搞定·~
如果不打包的话,可能会有一系列的手工配置·~有点麻烦·~
不过现在不打包的东西被我们叫做绿色版·~因为无需安装,所有删除很方面·~
以上(我已经尽量简单了·~可能存在漏洞,太执着于专业的人请放过我~~谢谢~~)
Ⅵ 编程完要编译,编译到底是什么意思
编程就是编写程序,也就是敲代码
编辑应该也是写代码的意思吧
编译一般都是在写了一行代码保存的时候,开发工具会编译你写的代码是否有错,然后会帮你生成一些其他文件
Ⅶ linux中打包和压缩有什么区别
打包就是把若干文件或文件夹放到一个tar文件中,但是不会压缩文件大小。
压缩就是在打包的基础上压缩文件的大小。