1、生成jar包命令:jar cvfm test.jar manifest.mf com
2、有依赖包时,请注意附件中标的空格,每个jar包一行且前后有空格,最后一行需回车。
3、获得jar包同目录文件的方法:
- public static String getAppPath(Class cls) {
-
- if (cls == null)
- throw new java.lang.IllegalArgumentException("参数不能为空!");
- ClassLoader loader = cls.getClassLoader();
-
- String clsName = cls.getName() + ".class";
-
- Package pack = cls.getPackage();
- String path = "";
-
- if (pack != null) {
- String packName = pack.getName();
-
- if (packName.startsWith("java.") || packName.startsWith("javax."))
- throw new java.lang.IllegalArgumentException("不要传送系统类!");
-
- clsName = clsName.substring(packName.length() + 1);
-
- if (packName.indexOf(".") < 0)
- path = packName + "/";
- else {
- int start = 0, end = 0;
- end = packName.indexOf(".");
- while (end != -1) {
- path = path + packName.substring(start, end) + "/";
- start = end + 1;
- end = packName.indexOf(".", start);
- }
- path = path + packName.substring(start) + "/";
- }
- }
-
- java.net.URL url = loader.getResource(path + clsName);
-
- String realPath = url.getPath();
-
- int pos = realPath.indexOf("file:");
- if (pos > -1)
- realPath = realPath.substring(pos + 5);
-
- pos = realPath.indexOf(path + clsName);
- realPath = realPath.substring(0, pos - 1);
-
- if (realPath.endsWith("!"))
- realPath = realPath.substring(0, realPath.lastIndexOf("/"));
-
-
-
-
-
-
- try {
- realPath = java.net.URLDecoder.decode(realPath, "utf-8");
- }
- catch (Exception e) {
- throw new RuntimeException(e);
- }
- return realPath;
- }