就这么一个例子,教你编译+运行+打包java文件
2010-12-10 20:41
453 查看
以下内容来自互联网,经过试验后觉得此文简单可行,于是记录于此;有些地方与我的试验结果不符,于是修改了下。
向原作者致谢!
首先,手工建立好我的工程MyProject,其实就是建立一个名为MyProject的文件夹,然后在该文件夹下再创建source文件夹,然后就是你喜
欢的包名,我地是com.jo
那么就是在source下再创建com文件夹,com下再创建jo文件夹,然后就是源文件了,我建一个名为Test.java的源文件,简单的写下代码做测试:
------------------------------------------------------------------------------
package com.jo;
public class Test {
public static void main(String args[]){
System.out.println("holy crap!");
}
}
--------------------------------------------------------------------------------
OK,然后就运行CMD(我的操作系统是windows当然就是CMD了,而且我已经配置好我的java环境变量了)。进入到工程文件下的source文件夹:
cd MyProject/source
接着就是编译文件,我采用了书中所建议的文件组织方式,就是源代码放在source文件夹中,然后编译过的文件就放在classes文件夹中
javac -d ../classes com/jo/Test.java
(编译此目录下的所有源文件则输入:javac -d ../classes com/jo/*.java)
书中提到如果还没有建立好对应的输出目录结构,只要加上-d,编译器会自动建立相应的目录结构,但起码要建立"classes
"文件夹。(一定要进到....../classes文件夹里面,差一点也不行,比如就不能进入到com/jo/Test文件里面,那样会提示找不到类的!)
然后要执行程序就需要进入到classes目录下,运行:
java com.jo.Test
运行顺利的话就会在命令提示符下看到我们期待的"holy crap!"了。
接着就是以包来创建可执行的jar
步骤一:
确认所有的类文件都在classes
目录下,并且对应的包结构都正确(下面文件夹结构应为/classes/com/jo/Test)。
步骤二:
创建manifest.txt(随便一个文本文件都行,主要是供jar命令提取其中的文本来生成MANIFEST.MF)文件来描述哪个类带有main(),以及确认有使用完整的类名称
在manifest.txt中写入下面这一行:
Main-Class: com.jo.Test(注意,此处的Test代表的是Test.class类文件,因为main()在里面,所以...)
然后把manifest.txt文件放入classes
目录下
注:
这里代码最后一定要加入换行符,就是回车。
否则打包的时候是可以通过,但是无法识别的,最后执行jar文件的时候会提示:Failed to load
Main-Class manifest attribute from
...虽然现在我们编程的时候大多时候都会用到IDE,但这是基础,我个人认为有必要去了解。(这是原作者提示的,但经试验,貌似可以成功,所以这个换行符没有也行),因为这种错误的主要原因是:
打包的时候出错了,或者是使用了旧的jar包进行偷梁换柱时没有更改启动的main-class路径,因此我们要做的只是将MANIFEST.MF中的Main-Class: 项修改为正确的main()方法所在类就行。
最后命令提示符里进入到classes目录,
cd MyProject/classes
然后打包:
jar -cvmf manifest.txt myjar.jar com
关于jar后的参数(主要就是f与m的次序问题),如果是有Unix或Linux经验的话,估计是很了解的(m对应的是文本文件manifest.txt,f对应的是生成目标jar文件myjar.jar),然后最后的那个com,是指定目录之用,无需是完整的。
最后的最后,当我们需要执行这个jar文件的时候,就输入:
java -jar myjar.jar
”holy crap!“
向原作者致谢!
首先,手工建立好我的工程MyProject,其实就是建立一个名为MyProject的文件夹,然后在该文件夹下再创建source文件夹,然后就是你喜
欢的包名,我地是com.jo
那么就是在source下再创建com文件夹,com下再创建jo文件夹,然后就是源文件了,我建一个名为Test.java的源文件,简单的写下代码做测试:
------------------------------------------------------------------------------
package com.jo;
public class Test {
public static void main(String args[]){
System.out.println("holy crap!");
}
}
--------------------------------------------------------------------------------
OK,然后就运行CMD(我的操作系统是windows当然就是CMD了,而且我已经配置好我的java环境变量了)。进入到工程文件下的source文件夹:
cd MyProject/source
接着就是编译文件,我采用了书中所建议的文件组织方式,就是源代码放在source文件夹中,然后编译过的文件就放在classes文件夹中
javac -d ../classes com/jo/Test.java
(编译此目录下的所有源文件则输入:javac -d ../classes com/jo/*.java)
书中提到如果还没有建立好对应的输出目录结构,只要加上-d,编译器会自动建立相应的目录结构,但起码要建立"classes
"文件夹。(一定要进到....../classes文件夹里面,差一点也不行,比如就不能进入到com/jo/Test文件里面,那样会提示找不到类的!)
然后要执行程序就需要进入到classes目录下,运行:
java com.jo.Test
运行顺利的话就会在命令提示符下看到我们期待的"holy crap!"了。
接着就是以包来创建可执行的jar
步骤一:
确认所有的类文件都在classes
目录下,并且对应的包结构都正确(下面文件夹结构应为/classes/com/jo/Test)。
步骤二:
创建manifest.txt(随便一个文本文件都行,主要是供jar命令提取其中的文本来生成MANIFEST.MF)文件来描述哪个类带有main(),以及确认有使用完整的类名称
在manifest.txt中写入下面这一行:
Main-Class: com.jo.Test(注意,此处的Test代表的是Test.class类文件,因为main()在里面,所以...)
然后把manifest.txt文件放入classes
目录下
注:
这里代码最后一定要加入换行符,就是回车。
否则打包的时候是可以通过,但是无法识别的,最后执行jar文件的时候会提示:Failed to load
Main-Class manifest attribute from
...虽然现在我们编程的时候大多时候都会用到IDE,但这是基础,我个人认为有必要去了解。(这是原作者提示的,但经试验,貌似可以成功,所以这个换行符没有也行),因为这种错误的主要原因是:
打包的时候出错了,或者是使用了旧的jar包进行偷梁换柱时没有更改启动的main-class路径,因此我们要做的只是将MANIFEST.MF中的Main-Class: 项修改为正确的main()方法所在类就行。
最后命令提示符里进入到classes目录,
cd MyProject/classes
然后打包:
jar -cvmf manifest.txt myjar.jar com
关于jar后的参数(主要就是f与m的次序问题),如果是有Unix或Linux经验的话,估计是很了解的(m对应的是文本文件manifest.txt,f对应的是生成目标jar文件myjar.jar),然后最后的那个com,是指定目录之用,无需是完整的。
最后的最后,当我们需要执行这个jar文件的时候,就输入:
java -jar myjar.jar
”holy crap!“
相关文章推荐
- 就这么一个例子,教你编译+运行+打包java文件
- 用 javac 编译一个目录下的所有 java文件并打包成jar 包
- 如何把一个java程序打包成exe文件,运行在没有java环境里
- 使用ant编译打包运行java文件
- ㈠ANT 编译,运行,打包java文件
- centos6.4中安装java,编译和运行java的一个例子
- Google PB协议学习记录--一个简单的例子--如何编译.proto文件为.java文件
- 手工编译、运行JavaSE项目,且此项目需要第三方jar包支持,且文件中有打包。 分类: java 2010-03-27 10:37 1057人阅读 评论(0) 收藏
- Java动态编译一个简单的例子(我转载的,但是经过修定,可以在Eclipse下运行)
- 一个简单java小程序打包成EXE运行文件
- 如何把一个java程序打包成exe文件,运行在没有java虚拟机
- 如何把一个java程序打包成exe文件,运行在没有java虚
- Jar 打包 EXE文件,可以脱离java环境运行 Jsmooth的使用
- 一个使用自定义命名空间的Schema文件,xml文件和castor生成的java代码的例子
- Jsmooth Java文件打包成exe文件(可以在没安装JDK的环境下运行)
- 使用jks文件,本地运行没问题,打包到服务器出现java.io.IOException: Invalid keystore format
- Javac命令一次编译一个目录下的所有java文件
- Java编译(三) Java即时编译(JIT编译):运行时把Class文件字节码编译成本地机器码
- 使用.bat文件运行Java程序的一个示例
- 创建用于编译和运行Java程序的批处理文件