萍聚社区-德国热线-德国实用信息网

 找回密码
 注册

微信登录

微信扫一扫,快速登录

萍聚头条

查看: 637|回复: 0

1-1-5-5 jb做的应用程序怎么打包成exe阿?

[复制链接]
发表于 2003-2-6 16:58 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册 微信登录

x
发信人: erik (大食懒茄菲猫), 信区: Java      
标  题: Re: jb做的应用程序怎么打包成exe阿?
发信站: BBS 水木清华站 (Thu May 16 11:57:33 2002)

这个是Borland不公开的使用技巧,能够通过JBuilder来制作exe文件来启动Java文件。
JBui
lder并不支持本地编译机制。但是有一个隐藏的技巧可以让你从可执行文件来启动Java
程序
,可以出现或者不出现console窗口。想做到这些,需要JBuilder的bin目录下的这些文
件:
JBuilder.exe
JBuilderW.exe (可选)
JBuilder.config
jdk.config
JavaLauncher.dll
“JBuilder.exe”是一个通用的可执行外壳文件,用以启动Java程序,”JBuilderW.ex
e“

像是javaw.exe一样,它把”JBuilder.exe”包装起来,但是运行时候不显示那个conso
le的
窗口。使用这些文件的关键是文件名。“JBuilder.exe”查找一个文件叫”JBuilder.c
onfi
g”的配置文件,里面包含了运行Java程序的必须信息。同样的”JBuilderW.exe”查找
”JB
uilder.exe”来启动不带Console窗口的Java程序。如果把JBuilder.exe重命名为”foo
.exe
”,那”foo.exe”将去寻找”foo.config”配置文件,同样”JBuilderW.exe”被重命
名为
”fooW.exe”,它会去寻找”foo.exe”文件。
说到这里,聪明的读者应该猜到怎样利用JBuilder.exe来启动应用程序了。只要把JBui
lder
.exe,JBuilerW.exe,JBuilder.config改名成相应的文件名,在JBuilder.config里面指
定主
类和类路径,就能够通过执行JBuilder.exe(或者被改名后的exe文件)来启动Java应用程


。下面是用本机为例。
Borland JBuilder 5被安装在E:\jbuilder5\目录下,在E:\jbuilder5\bin\下建立一个
temp
目录,然后把JBuilder.exe,JBuilder.config,JavaLauncher.dll,jdk.config四个文件
拷贝
到E:\jbuilder5\bin\temp\目录下,然后在这个目录下建立一个hello目录,在这个目录


成一个hello.java文件,即E:\jbuilder5\bin\temp\hello\hello.java文件,
file://hello.java/
package hello;
public class hello{
    public static void main(String s[]){
        System.out.println("Hello, Exe file!");
    }
}
编译成class文件,如图18-14:
图18-14 编译所有java文件
然后打开Jbuilder.config文件,作相应的修改:
在JBuilder.config里面找到下面两行
# Start JBuilder using the its main class
mainclass com.borland.jbuilder.JBuilder
修改为
# Start JBuilder using the its main class
mainclass hello.hello
addpath E:/jbuilder5/bin/temp/
addpath命令是把目录加入类路径中,这个命令和其它config里面可以识别的命令可以在
JBu
ilder/bin目录下的config_readme.txt里面找到详细说明。
然后将jdk.config里面的javapath修改成相对的路径,例如原来是
javapath ../jdk1.3/bin/java
修改成
javapath ../../jdk1.3/bin/java
最后
将JBuilder.exe,JBuilder.config修改成所需要的文件名,例如foo.exe和foo.config文


现在执行foo.exe文件
可以看到执行的结果如图18-15:
图18-15 执行foo.exe后的运行结果
至此,通过修改JBuilder来使用exe文件启动自己的Java应用程序已经完成了。
但是好玩的地方并不在这个地方,下面的小技巧可能更有趣,将Jar文件打包进入exe文
件!
假设利用上面的文件,生成hello.jar包,执行过程和运行结果如图18-16:
jar cvf hello.jar hello\*.class
图18-16 将类文件打包成exe文件
然后将jar包附加到JBuilder.exe后面去,执行过程如图18-17:
copy /b ..\JBuilder.exe+hello.jar foo.exe
图18-17 将jar文件转化成exe文件
在foo.config(JBuilder.config)文件里面把前面加入的类路径去掉,并加入下面的路径

addpath E:/jbuilder5/bin/temp/foo.exe
然后执行,执行结果如图18-18:
foo.exe
图18-18 变成exe文件的jar文件执行结果
看到了么?一个含jar包的exe文件被执行了!
这个过程的大致原理是:exe文件的重要信息都在文件头部,所以把乱七八糟的东西放e
xe文
件尾部是不要紧的;而jar/zip文件的重要信息是在文件尾部的,这样它们两不相干,能


易的被执行。
请注意:读者如果使用这个功能,得自己承担可能带来的风险,因为Borland对这个功能


供官方的支持!



【 在 drunkard (forever) 的大作中提到: 】
: 虽然看到有人问过了,还是不会,
: 有没有哪位大侠能稍微详细一点讲解?


发信人: erik (大食懒茄菲猫), 信区: Java      
标  题: Re: jb做的应用程序怎么打包成exe阿?
发信站: BBS 水木清华站 (Fri May 17 09:29:15 2002)

In fact, you can use installshield (for Multiplatform) to generate you
installer in most cases. Your installer will be 100% in pure java and you
can embed the JVM in the installer as well. It is similar to the installer
of JB5 (It uses installanywhere). But you can not expect your code secret
unless you obfuscator it.

Just FYI :)



【 在 drunkard (forever) 的大作中提到: 】
: 谢谢大猫,这招我已经学会了,:)
: 我想把jb做的应用程序做成一个install该怎么办?
: 不希望被看到源代码。
Die von den Nutzern eingestellten Information und Meinungen sind nicht eigene Informationen und Meinungen der DOLC GmbH.
您需要登录后才可以回帖 登录 | 注册 微信登录

本版积分规则

手机版|Archiver|AGB|Impressum|Datenschutzerklärung|萍聚社区-德国热线-德国实用信息网 |网站地图

GMT+2, 2024-5-22 12:23 , Processed in 0.055160 second(s), 19 queries , MemCached On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表