╔·│╔jar░№.bat 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. @echo off
  2. ::在Windows系统中双击运行这个文件,自动完成java文件编译和打包成jar
  3. for %%i in (%cd%) do set dir=%%~ni
  4. if not "%dir%"=="scripts" (
  5. echo 请到scripts目录中运行本脚本。
  6. goto Pause
  7. )
  8. :Run
  9. cls
  10. cd ../
  11. setlocal enabledelayedexpansion
  12. ::修改这里指定需要使用的JDK(\结尾bin目录完整路径),否则将使用已安装的默认JDK
  13. set jdkBinDir=
  14. ::set jdkBinDir="C:\Program Files\Java\jdk-1.8\bin\"
  15. if "%jdkBinDir%"=="" (
  16. echo 正在读取JDK版本(如需指定JDK为特定版本或目录,请修改本bat文件内jdkBinDir为JDK bin目录):
  17. ) else (
  18. echo 正在读取JDK(%jdkBinDir%)版本:
  19. )
  20. %jdkBinDir%javac -version
  21. if errorlevel 1 (
  22. echo 需要安装JDK才能编译java文件
  23. goto Pause
  24. )
  25. :JarN
  26. echo.
  27. echo 请选择需要的生成操作:
  28. echo 1. 仅生成依赖jar文件(放到其他项目中Java代码调用,不含Test.java)
  29. echo 2. 生成可运行jar文件(包含Test.java控制台程序)
  30. echo 3. 退出
  31. set step=
  32. set /p step=请输入序号:
  33. echo.
  34. if "%step%"=="1" goto Jar1
  35. if "%step%"=="2" goto Jar2
  36. if "%step%"=="3" goto Pause
  37. echo 序号无效!请重新输入
  38. goto JarN
  39. :Clazz
  40. echo 编译中...
  41. %jdkBinDir%javac -encoding utf-8 -cp "./*" %Clazz_Files%
  42. if errorlevel 1 (
  43. echo java文件编译失败
  44. goto JarN
  45. )
  46. set dir=target\classes\com\github\xiangyuecn\areacity\query
  47. if exist target\classes rd /S /Q target\classes > nul
  48. md %dir%
  49. move *.class %dir% > nul
  50. echo 编译完成,正在生成jar...
  51. goto %Clazz_End%
  52. :Jar1
  53. set Clazz_Files=AreaCityQuery.java
  54. set Clazz_End=Jar1_1
  55. goto Clazz
  56. :Jar1_1
  57. set dir=target\jarLib\
  58. if not exist %dir% md %dir%
  59. set jarPath=%dir%areacity-query-geometry.lib.jar
  60. %jdkBinDir%jar cf %jarPath% -C target/classes/ com
  61. if errorlevel 1 (
  62. echo 生成jar失败
  63. ) else (
  64. copy jts-core-*.jar %dir% > nul
  65. echo 已生成jar,文件在源码根目录:%jarPath%,请copy这个jar + jts-core-xxx.jar 到你的项目中使用。
  66. )
  67. echo.
  68. pause
  69. goto JarN
  70. :Jar2
  71. set Clazz_Files=*.java
  72. set Clazz_End=Jar2_1
  73. goto Clazz
  74. :Jar2_1
  75. set dir=target\jarConsole\
  76. set dir_libs=%dir%libs\
  77. if not exist %dir% md %dir%
  78. if not exist %dir_libs% md %dir_libs%
  79. set jarPath=%dir%areacity-query-geometry.console.jar
  80. copy *.jar %dir_libs% > nul
  81. set jarArr=
  82. for /f %%a in ('dir /b "%dir_libs%"') do (set jarArr=!jarArr! libs/%%a)
  83. echo Class-Path:%jarArr%
  84. set MANIFEST=target\classes\MANIFEST.MF
  85. echo Manifest-Version: 1.0>%MANIFEST%
  86. echo Class-Path:%jarArr%>>%MANIFEST%
  87. echo Main-Class: com.github.xiangyuecn.areacity.query.Test>>%MANIFEST%
  88. %jdkBinDir%jar cfm %jarPath% target/classes/MANIFEST.MF -C target/classes/ com
  89. if errorlevel 1 (
  90. echo 已生成jar失败
  91. ) else (
  92. echo 已生成jar,文件在源码根目录:%jarPath%,libs内已包含依赖的其他jar文件,使用时请全部复制。
  93. echo 请到这个文件夹里面后,执行命令运行这个jar:
  94. echo java -jar areacity-query-geometry.console.jar
  95. )
  96. echo.
  97. pause
  98. goto JarN
  99. :Pause
  100. pause
  101. :End