导航:首页 > 源码编译 > java选择性编译

java选择性编译

发布时间:2024-05-10 22:13:08

1. 如何编译一个java文件

javac 用于编译Java文件,格式为:
java [options] [sourcefiles] [@files]
其中:
options:命令行选项;
sourcefiles:一个或多个要编译的源文件;
@files:一个或多个对源文件进行列表的文件,有时候要编译的文件很多,一个个敲命令会显得很长,也不方便修改,可以把要编译的源文件列在文件中,在文件名前加@,这样就可以对多个文件进行编译,对编译一个工程很有用,方便,省事。
有几个比较重要的选项:
-d 用于指定编译成的class文件的存放位置,缺省情况下不指定class文件的存放目录,编译的class文件将和源文件在同一目录下;
-classpath 可以简写成-cp,用于搜索编译所需的class文件,指出编译所用到的class文件的位置,如jar、zip或者其他包含class文件的目录,指定该选项会覆盖CLASSPATH的设定;
-sourcepath用于搜索编译所需的源文件(即java文件),指定要搜索的源文件的位置,如jar、zip或其他包含java文件的目录;
需要注意windows下和linux下文件路径分隔符和文件列表(即-classpath和-sourcepath指定的文件)分隔符的区别:
windows下文件路径分隔符用 \ ,文件列表分隔符用分号 ;
linux下文件路径分隔符用 / ,文件列表分隔符用冒号 :

2. 从思路开始 Java如何实现条件编译的技巧

条件编译绝对是一个好东西。如在C或Cpp中,可以通过预处理语句来实现条件编译。代码如下:
#IFDEF DEBUG#UNDEF DEBUG#ENDIF #define DEBUG #IFDEF DEBUUG /* code block 1 */#ELSE /* code block 2 */#ENDIF


但是在JAVA中却没有预处理,宏定义这些东西,而有时我们可能需要条件编译。那么,在JAVA中,该如何实现条件编译呢?
我们来看一个例子。
编写一个helloworld程序。代码如下:

public class Hello { public static void main(String[] args) { System.out.println("Hello, world!"); }}


保存为Hello.java并编译,得到一个class文件,并且观察到文件大小是417字节。然后我们对这个文件进行反编译,用jd-gui。得到代码如下:

import java.io.PrintStream;public class Hello { public static void main(String[] paramArrayOfString) { System.out.println("Hello, world!"); }}


得到这个有什么用呢?
现在我们再来对源代码进行修改,修改后的代码如下。

public class Hello { public static void main(String[] args) { if(false) { System.out.println("Hello, world!"); } }}

进行编译,这时我们再看它的大小,只有255字节。怎样?想到什么了吧?没错,编译器会对代码进行优化,对于条件永远为false的语句,JAVA编译器将不会对其生成字节码。

3. 如何编译java程序

三种方法:

1.在IDE中,如eclipse中写的Java程序,在点击保存后eclipse就会调用javac编译程序编译,编译文件在当前项目的bin目录下。

2.作为一个独立的文件且没有定义Java环境变量,需要在cmd窗口中切换到java bin目录下执行Javac程序,执行格式为javac 空格 Java源文件;如 javac C://hello.java;

3.作为一个独立的文件且定义了Java环境变量,打开cmd窗口,可以在任意目录输入javac java源文件,如javac D://hi.java。

(3)java选择性编译扩展阅读

Java也是一种高级语言,要让计算机执行你撰写的Java程序,也得通过编译程序的编译。但是Java编译程序并不直接将Java源代码编译为相依于计算机平台的0、1序列,而是将其编译为字节码。

Java源代码的扩展名为.java,经过编译程序编译之后生成扩展名为.class的字节码。

4. 如何用JAVAC一次性编译多个包下的JAVA文件

1.利用-cp
cd xxx
dir *.java/s/b > srclist.txt
or dir x:/yyy/zzz/*.java/s/b > srclist.txt
javac -cp .;xxx/yyy/zzz.jar;x/y/z.jar -d classes @srclist.txt

2.直接使用

这个,主要是在做一个独立的Java项目,它不依赖IDE,同时要在别人电脑上编译运行
下面编译运行用到了jar包、properties文件。首先进入项目的根目录下,注意:每一行,表示:DOS系统将执行的指令。
G:
cd testJava
上面,两个命令为模拟,进入项目根目录(具体目录,根据自己程序所在目录)。
javac -classpath .;../previousRecord.properties;../lib/jtds-1.2.5.jar;com/cjb/properities/jdbc.properties com/cjb/jdbc/*.java com/cjb/client/*.java -encoding UTF-8
上面命令,表示:编译com/cjb/jdbc下所有java类和com/cjb/client下所有java类,这些类用到了previousRecord.properties文件(它的路径是相对的)和jtds-1.2.5.jar的文件jar包(它的路径也是相对的),同时用的编码是UTF-8。
java -Xms64m -Xmx512m -cp .;../previousRecord.properties;../lib/jtds-1.2.5.jar;com/cjb/properities/jdbc.properties com/cjb/client/MailDispatcherOperation
上面命令,表示:执行com/cjb/client下的MailDispatcherOperation.class(它里面有Main函数)。

5. 急!!!!java 文件怎么编译

举个例子,假如一个java源文件(Test.java)放在e盘java文件夹下,则编译并运行按照如下步骤:
1、在dos下输入e:然后回车
2、输入cd java然后回车
3、输入javac Test.java然后回车
4、输入java Test然后回车

6. 简述JAVA程序的编辑编译和运行过程

第一步(编译): 创建完源文件之后,程序会先被编译为.class文件。Java编译一个类时,如果这个类所依赖的类还没有被编译,编译器就会先编译这个被依赖的类,然后引用,否则直接引用,这个有点象make。

如果java编译器在指定目录下找不到该类所其依赖的类的.class文件或者.java源文件的话,编译器话报“cant find symbol”的错误。

第二步(运行):java类运行的过程大概可分为两个过程:1、类的加载 2、类的执行。需要说明的是:JVM主要在程序第一次主动使用类的时候,才会去加载该类。也就是说,JVM并不是在一开始就把一个程序就所有的类都加载到内存中,而是到不得不用的时候才把它加载进来,而且只加载一次。

特别说明:java类中所有public和protected的实例方法都采用动态绑定机制,所有私有方法、静态方法、构造器及初始化方法<clinit>都是采用静态绑定机制。而使用动态绑定机制的时候会用到方法表,静态绑定时并不会用到。

(6)java选择性编译扩展阅读:

Java整个编译以及运行的过程相当繁琐,本文通过一个简单的程序来简单的说明整个流程。

Java代码编译:是由Java源码编译器来完成;

Java字节码的执行:是由JVM执行引擎来完成

Java程序从源文件创建到程序运行要经过两大步骤:

1、源文件由编译器编译成字节码(ByteCode)

2、字节码由java虚拟机解释运行。因为java程序既要编译同时也要经过JVM的解释运行,所以说Java被称为半解释语言( "semi-interpreted" language)。

7. java怎么编译

如果是在命令行下编译,可以进入相应的目录然后输入
javac [你的java文件名.java]
想要运行就输入
java [你编译后的class文件名]
例如你的java文件名叫demo.java,在D盘根目录下
在命令行下进入D盘,输入
javac demo.java 就能编译了。
要运行就输入
java demo就可以运行了。

如果用IDE工具开发,直接按工具栏上的绿色箭头就可以自动编译运行了。

阅读全文

与java选择性编译相关的资料

热点内容
编译汇编链接优化 浏览:79
程序员打字和作家哪个打字快 浏览:573
安卓手机怎么用cad命令行 浏览:383
2200工程机接收命令瞬间消失 浏览:253
压缩机工艺管是多大的 浏览:312
安卓刷什么系统稳定 浏览:35
程序员写炫酷代码 浏览:930
大话存储pdf 浏览:524
中铭机器人怎么编程 浏览:812
把字母变为数字的加密法 浏览:523
噬血狂袭第三季哪个app能看 浏览:422
江苏螺杆压缩机 浏览:980
android底部弹出对话框 浏览:502
怎么查服务器同行fc号 浏览:1000
什么服务器云鸟最便宜 浏览:221
vs编译器反汇编 浏览:571
程序员直播做项目创业 浏览:403
linux下samba配置 浏览:797
程序员面试银行岗位会有编制吗 浏览:415
ex表怎么加密码保护 浏览:174