java代码不会编译 java编译错误

什么是Java代码的编译与反编译?Java代码的编译与反编译
2017-02-21Hollis数盟
一、什么是编译
1、利用编译程序从源语言编写的源程序产生目标程序的过程 。
2、用编译程序产生目标程序的动作 。编译就是把高级语言变成计算机可以识别的2进制语言java代码不会编译,计算机只认识1和0 , 编译程序把人们熟悉的语言换成2进制的 。编译程序把一个源程序翻译成目标程序的工作过程分为五个阶段:词法分析;语法分析;语义检查和中间代码生成;代码优化;目标代码生成 。主要是进行词法分析和语法分析,又称为源程序分析,分析过程中发现有语法错误,给出提示信息 。
二、什么是反编译
计算机软件反向工程(Reverseengineering)也称为计算机软件还原工程,是指通过对他人软件的目标程序(可执行程序)进行“逆向分析、研究”工作 , 以推导出他人的软件产品所使用的思路、原理、结构、算法、处理过程、运行方法等设计要素,某些特定情况下可能推导出源代码 。反编译作为自己开发软件时的参考 , 或者直接用于自己的软件产品中 。
三、Java类的编译与反编译
java代码不会编译我们在最初学习Java的时候,会接触到两个命令:javac和java,那个时候我们就知道,javac是用来编译Java类的,就是将我们写好的helloworld.java文件编译成helloworld.class文件 。
class文件打破了C或者C等语言所遵循的传统,使用这些传统语言写的程序通常首先被编译,然后被连接成单独的、专门支持特定硬件平台和操作系统的二进制文件 。通常情况下,一个平台上的二进制可执行文件不能在其他平台上工作 。而Javaclass文件是可以运行在任何支持Java虚拟机的硬件平台和操作系统上的二进制文件 。
那么反编译呢,就是通过helloworld.class文件得到java文件(或者说是程序员能看懂的Java文件)
四、什么时候会用到反编译
1、我们只有一个类的class文件,但是我们又看不懂Java的class文件,那么我们可以把它反编译成我们可以看得懂的文件 。
2、学习Java过程中,JDK的每个版本都会加入越来越多的语法糖,有些时候我们想知道Java一些实现细节,我们可以借助反编译 。
五、反编译工具
【java代码不会编译 java编译错误】1、javap
2、Jad:官网(墙裂推荐)
客户端:
可以在官网下载可执行文件 , 找到对应的操作系统的对应版本,然后进行安装使用 。
因为我使用的是linux操作系统,所以我下载的是Linux版本的工具,这个工具下载好之后会有一个执行文件 , 只要在执行文件所在目录执行./jadhelloworld.class就会在当前目录下生成helloworld.jad文件,该文件里就是我们很熟悉的Java代码
Eclipse插件:
下载地址在官网下载插件的jar包,然后将jar包放到eclipse的plugins目录下‘在打开Eclipse,Eclipse-Window-Preferences-Java,此时你会发现会比原来多了一个JadClipse的选项,单击,在Pathtodecompiler中输入你刚才放置jad.exe的位置,也可以制定临时文件的目录 。当然在JadClipse下还有一些子选项 , 如Debug,Directives等 , 按照默认配置即可 。基本配置完毕后,我们可以查看一下class文件的默认打开方式 , Eclipse-Window-Preferences-General-Editors-FileAssociations我们可以看到class文件的打开方式有两个,JadClipse和Eclipse自带的ClassFileViewer , 而JadClipse是默认的 。全部配置完成,下面我们可以查看源码了,选择需要查看的类,按F3即可查看源码
javac为什么不能编译 , 环境变量和代码应该没问题啊原因是jdk没有配置环境变量 。
设置方法:
依次点击计算机-高级系统设置-环境变量-系统变量-path-在这个位置上添加jdk安装路径,就是到jdk目录后把bin目录加进去 。
或者不配置环境变量的话,你可以在jdk的安装路径下bin文件夹下面编译就行了 。比如:
C:\Java\jdk1.6\binjavac e:/temp/Hello.java
正确的环境变量为:
新建“JAVA_HOME”变量名,值为jdk的文件夹路径 。
新建“CLASSPATH”变量名,值为jdk文件夹下lib文件夹的路径 。
修改“PATH”变量下变量值,增加变量值jdk文件夹下bin文件夹路径 。
java文件保存后为什么没有编译?myeclipse不编译可能有多重情况 ,
这两天eclipse 突然不能自动编译了,无论怎么更改保存, classes目录下都是空的.
在网上找了很多文章,总结如下:
1. 确保 project-build automatically已经被选上.
2. 如果选上了,也不好使, 使用这一招: project-clean..-选第2个clean select project, 勾上start build immediatelly
3.删除现在的项目,提前设置好编译文件输出路径,重新导入源文件,设置eclipse为保存时编译,然后在保存的时候就可以自动编译了
4.如果项目里引了某个不用的jar包,而那个包又被你删了,就会出现不报错但怎么也编译不出来class文件的情况 。Project--properties--Java Build Path--Libraries,可以把所有包都删除,然后一个一个的再引入(需要的),不要一下子把所有包都引入来,没用的可能会引起不良后果 。也可以把有问题的包(会有提示)直接remove掉即可 。
5. 想删掉某个class文件重新生成,删除class文件后,但classes目录下的文件夹被其它程序打 开,比如Total Commander 。此时编译也不会通过,在problems下可能会提示“con't delete classes ……” 。关掉其它程序重新编译即可 。
6.还有种情况是remove掉 JRE System Library,重新导入即可编译 。但是什么原因导致的还不清楚 。
7.把build path中所有包都remove掉 。然后又add jars,add libraries把需要的加进去,居然又开始编译了 。。。
8.project-properties-java build path-source-.../WEB-INF/src的output folder不要默认,编辑让它指向../WEB-INF/classes
然后重新点击build工程即可自动编译 。
9.再就是最重要的要看工程下面是否缺少了work目录,由于CVS控制时不把work加如版本,所以checkout后没有这个目录,要手工加上有的工程就能自动编译了
最开始的时候,我只找到了前面7个方法,但是他们都没有解决我的问题.无意中我打开了"Problems"标签,发现里面说缺少work目录,手工加上,然后刷新项目就可以了.
最后两个是我在写这个总结的时候发现的.特别是第九条,对使用CVS进行版本控制的项目比较有用.
10 看看problem是否有错误 。
以上都试试 。各种情况都可能导致不编译 , 还是要靠经验 。
编写java代码不能被编译 这是怎么回事你在CMD里输入java -version看看行不行(中间有个空格,正常会出来版本号,如果没有,重新配置版本号)
然后 , 你记事本的的代码,先把输入法设为英文
main的参数里String[]args 之间有空格
System.out.print("测试"); 中间应该是. 不是 ,
然后 试试 javacTuo.class
javaTuo
java 为什么编译不了?很明显的错误,环境变量少配置了,path对应java , classpath对应javac,你检查一下你的环境变量是否配错了
java编程无法编译java代码不会编译你这个是jar包吧?不是java文件!java代码不会编译你看一下你文件位置在哪里.
还有就是你环境变量配置了吗?
关于java代码不会编译和java编译错误的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。

    推荐阅读