图书馆管理系统 (13) — 将程式打包成 jar 文件

或许你会问:“难道我们每一次打开这个程式都要用这个笨重的 Eclipse 吗?况且 Eclipse 只是一个好像 Editor 这样的东西,虽然程式员用它来改程式,但是我又不是程式员!能不能弄一个执行档 run.exe 呢?双击打开就可以了…”

对的,这是一个合理的要求,接下来我会教大家如何制造一个 jar 文件, 它就像我们熟悉的 .exe 执行档一样简单。

制造一个 jar 文件

bootjar.jpg

Gradle Task (可能需要等 15秒 左右) –> minioasis-library –> build –> bootJar (double clicks),你就会看到底下的动作,

bootjar1.jpg

当它走完后,你就会看到一个 “ minioasis-library-0.0.1-SNAPSHOT.jar ” file (它是在你的 git repository -> build\libs 里,参考下图 。但是如果你的源码是直接下载,然后放到 workspace 管理,那你可以到那里找, 一样,它也是在 build\libs 里) ,

jar.jpg

你可以把它的档名改成任何的名字,我这里就把它改成 “ library.jar ”,然后将它放到 Desktop (其实那里都可以,我们这里是为了方便 ),然后打开一个 cmd (Command Prompt)执行它,

desktop path.jpg

change directory (当然你需要知道你的Desktop 的路径)后,键入 java -jar library.jar 就启动了,你会看到以下这个熟悉的画面:

run jar.jpg

打开 http://localhost:8080, 你就可以看到 home page,

home.jpg

成功不用 Eclipse ,只用 command prompt 就把程式打开了,如果你要到管理界面,你可以到 http://localhost:8080/admin, 如果你用第二台电脑进入则是 http://your_ip_address:8080/admin, 怎样知道你的机器的 ip adddress 呢?打开 command prompt 键入 ipconfig 即可

> ipconfig

如果你开不到,可能是被那台电脑的antivirus 或 Windows 的防火墙 firewall 挡着了,打开即可。

“等等,你不是说要用 double clicks 一个 .exe 档吗?”

是的,是的,但是不是用 .exe , 而是用 .bat ,参考底下的视频,我想你可以自己搞定!哈哈..

How to Run Executable Java (.jar) Files in Windows

如果你还不满意,又问:“可以不要这么麻烦吗?反正每天都要用,可以不可以把它设成Windows 的 service , 让它一开机就自动开呢?”,答案是:可以的。

将 library.jar 做成一个 服务(Service)

方法跟之前的 MinIO service 一样,用 winsw:

winsw is a wrapper to run any executable as an Windows service.

  1. 下载 WinSW.NET4.exe
  2. Rename the WinSW.NET4.exe to library-service.exe , then put “library-service.exe” into the same folder as library.jar.
  3. Create a xml file library-service.xml insert the configuration below,  then put “library-service.xml” into the same folder as library.jar.
  4. Open a cmd as Administrator and execute library-service.exe install

library-service.xml

<service>
  <id>library-service</id>
  <name>Library Service (Power By WinSW)</name>
  <description>Library Application</description>
  <executable>java</executable>
  <arguments>-jar C:\library-service\library.jar</arguments>
  <logmode>rotate</logmode>
</service>

这样就可以制作一个自动开机的服务

ps. 参考之前的文章,图书馆管理系统 (3) — 储存照片的 MinIO .

 

 

发表评论

Fill in your details below or click an icon to log in:

WordPress.com 徽标

You are commenting using your WordPress.com account. Log Out /  更改 )

Google photo

You are commenting using your Google account. Log Out /  更改 )

Twitter picture

You are commenting using your Twitter account. Log Out /  更改 )

Facebook photo

You are commenting using your Facebook account. Log Out /  更改 )

Connecting to %s