精华内容
下载资源
问答
  • Maven打包jar后文件读取资源文件

    千次阅读 2018-04-08 17:18:05
    1. 读取jar包外面的文件 在同一个文件夹(比如target)有conf文件夹,和test-0.1.jar文件。 prop1.properties 放在conf里面,test-0.1.jar读取prop1.properties 的pro1.value的值 [java] view plain copy print?&...

    1. 读取jar包外面的文件

    在同一个文件夹(比如target)有conf文件夹,和test-0.1.jar文件。

    prop1.properties 放在conf里面,test-0.1.jar读取prop1.properties 的pro1.value的值

    1.   public static void fun1() throws IOException{  
    2.     String str1 = new Dog().getClass().getProtectionDomain().getCodeSource().getLocation().getPath();  
    3.     //   /H:/Users/OTC/workspace/testLog4j/target/testLog4j-0.1.jar  
    4.     System.out.println(str1);  
    5.     String str2 = new File(str1).getParent() + “/conf/prop1.properties”;  
    6.     //   H:\Users\OTC\workspace\testLog4j\target/conf/prop1.properties  
    7.     System.out.println(str2);  
    8. InputStream in = new BufferedInputStream(new FileInputStream(str2));  
    9. Properties p = new Properties();  
    10.       p.load(in);  
    11.       //    I am 1, outside jar  
    12.       System.out.println(p.getProperty(”pro1.value”));  
    13.   }  
        public static void fun1() throws IOException{
            String str1 = new Dog().getClass().getProtectionDomain().getCodeSource().getLocation().getPath();
            //   /H:/Users/OTC/workspace/testLog4j/target/testLog4j-0.1.jar
            System.out.println(str1);
            String str2 = new File(str1).getParent() + "/conf/prop1.properties";
            //   H:\Users\OTC\workspace\testLog4j\target/conf/prop1.properties
            System.out.println(str2);
            InputStream in = new BufferedInputStream(new FileInputStream(str2));
            Properties p = new Properties();
            p.load(in);
            //    I am 1, outside jar
            System.out.println(p.getProperty("pro1.value"));
        }



    2. 读取jar包里面的文件

    prop2.properties放在jar包里面根目录下面

    1. public static void fun2() throws IOException{  
    2.     //  path 不以’/’开头时默认是从此类所在的包下取资源,以’/’开头则是从  
    3.     InputStream in = new Dog().getClass().getResourceAsStream(“/prop2.properties”);  
    4. operties p = new Properties();  
    5.     p.load(in);  
    6.     //   I am 2, inside jar  
    7.     System.out.println(p.getProperty(”pro2.value”));  
    8. }  
        public static void fun2() throws IOException{
            //  path 不以’/'开头时默认是从此类所在的包下取资源,以’/'开头则是从
            InputStream in = new Dog().getClass().getResourceAsStream("/prop2.properties");
            Properties p = new Properties();
            p.load(in);
            //   I am 2, inside jar
            System.out.println(p.getProperty("pro2.value"));
        }




                    </div>
    
    展开全文
  • Maven打包项目丢失properties文件

    千次阅读 2018-06-22 10:36:15
    项目打包发布的时候发现配置文件没有打包上就是图片中的这个文件后来找到原因pom文件中关于打包的配置中没有写红色方框中的配置,导致无法打包src/main/java下的以properties结尾的文件...

    项目打包发布的时候发现配置文件没有打包上


    就是图片中的这个文件

    后来找到原因


    pom文件中关于打包的配置中没有写红色方框中的配置,导致无法打包src/main/java下的以properties结尾的文件

    展开全文
  • maven打包二进制文件

    2016-09-18 13:48:00
    用java做数据挖掘的时候,保存一个模型文件用java序列化成一个对象文件,在用maven打包时候遇到些问题. 一是做个记录,二是可以帮助大家少走些弯路. 一.找不到文件  maven打包路径问题,首先遇到的问题就是,打包后...

    用java做数据挖掘的时候,保存一个模型文件用java序列化成一个对象文件,在用maven打包的时候遇到些问题.

    一是做个记录,二是可以帮助大家少走些弯路.

    一.找不到文件

      maven打包路径问题,首先遇到的问题就是,打包后找不到模型文件,模型文件保存在maven工程里的resources

    目录中,路径是resource的相对路径,写单元测试的时候报FileNotFoundException

    原因是项目中部署中添加了

    <resource>
        <directory>${basedir}/src/main/resources</directory> <filtering>true</filtering> </resource>

    filtering为true,由于是war工程出,maven编译的时候会将resources目录下的文件拷贝到webapp/WEB-INF下的classes目录中,

    导致resources相对路径中找不到文件.

    解决方法:使用类加载器找文件位置

    LoadModel.class.getClassLoader().getResource("*.model").getPath();

     

     

    二.文件反序列化报错

      通过上一步找到了文件,但是在打包后,测试又报错

    可以看出文件是找到了,却报invaild stream header:EFBFBDEF错误,但是把原文件拷贝覆盖编译过的模型文件,测试是正确的这个错误原因是war工程里,

    通过第一步配置将resources目录文件拷贝到classes目录的时候maven会对文件进行过滤,更深成的原因好像是编译的时候会进行utf-8编码,导致文件无法

    正确反序列化,这个解决办法找到两种:

    1.在build中添加<nonFileredFileExtensions>将二进制文件,比如图片格式的文件,指定不要过滤

    <project>
      ...
      <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-resources-plugin</artifactId> <version>3.0.1</version> <configuration> ... <nonFilteredFileExtensions> <nonFilteredFileExtension>pdf</nonFilteredFileExtension> <nonFilteredFileExtension>swf</nonFilteredFileExtension> </nonFilteredFileExtensions> ... </configuration> </plugin> </plugins> ... </build> ... </project>

    可以看一下官方的说明: http://maven.apache.org/plugins/maven-resources-plugin/examples/binaries-filtering.html

     2.在resources拷贝的时候可以将图片类的二进制文件与配置文件区分开,因为我添加的是model后缀的二进制文件,我的配置如下:

    <resource>
        <directory>${basedir}/src/main/resources</directory> <filtering>true</filtering> <excludes> <exclude>**/*.model</exclude> </excludes> </resource> <resource> <directory>${basedir}/src/main/resources</directory> <filtering>false</filtering> <includes> <include>**/*.model</include> </includes> </resource>

    这样可以使二进制文件不被maven过滤转码.

     

     

    三.读取不到jar包里的文件

    单元测试成功变green bar,项目打包上传到测试环境,结果还是读取不到模型文件,原因是文件打包后都在jar文件里,

    无法直接读取jar包里的文件类型数据.

    解决方法:通过类加载器读取文件.这个网上有很多说明.

    InputStream in=LoadModel.class.getClassLoader().getResourceAsStream("LRModelForAD.model");

     这个测试有效,另一种读取方式是class.getclass().getresources("")得到一个FileUrl,但是我测试却报空指针异常,

    以后有机会在验证.

     

    欢迎指正.

    转载于:https://www.cnblogs.com/xmeo/p/6673091.html

    展开全文
  • 用idea给maven项目打包时候显示以下警告: ``` [WARNING] JAR will be empty - no content was marked for inclusion! ``` ## pom.xml配置 ```xml <project xmlns="http://maven.apache.org/POM/4.0.0...
  • 问题描述 正常情况下,在idea中 ...如果打包后运行java -jar xx.java 会报错找不到资源文件 要取编译后的路径,而不是你看到的src/main/resources的路径。如下: URL url = MyTest.class.getClassLoader().

    问题描述

    正常情况下,在idea中

    new FileInputStream("src/main/resources/table.xml")

    或者

    new File("src/main/resources/table.xml")

    程序可以执行,没有任何问题。

    如果打包后运行java -jar xx.java 

    会报错找不到资源文件

    要取编译后的路径,而不是你看到的src/main/resources的路径。如下:

    URL url = MyTest.class.getClassLoader().getResource("table.xml");
    File file = new File(url.getFile());
     或者
    InputStream in = MyTest.class.getClassLoader().getResourceAsStream("table.xml");

    第二种方法,也可以改成
    InputStream in = getClass().getClassLoader().getResourceAsStream("conf.properties");
     

    注意

    要查看maven 打包后,配置文件是否打包进jar包

    定位问题:

    1.配置文件打包进jar包,但是不能获取资源。(问题描述中的解决办法)

    2.配置文件没有打包进jar包,这时要设置pom文件

     

     

     ClassLoader() 的作用

    classLoader主要对类的请求提供服务,当JVM需要某类时,它根据名称向ClassLoader要求这个类,然后由ClassLoader返回这个类的class对象。

    ClassLoader负责载入系统的所有资源(Class,文件,图片,来自网络的字节流等),通过ClassLoader从而将资源载入JVM 中。每个class都有一个引用,指向自己的ClassLoader。

    getClassLoader() 的作用

    getClass():取得当前对象所属的Class对象 
      getClassLoader():取得该Class对象的类装载器
      类装载器负责从Java字符文件将字符流读入内存,并构造Class类对象,在你说的问题那里,通过它可以得到一个文件的输入

    Class.getClassLoader()的一个小陷阱,空指针异常:
      昨天我的code总在Integer.class.getClassLoader().getResource("*********");这一句抛出空指针异常,定位为getClassLoader()返回null,查了一下jdk的文档,原来这里还有一个陷阱:
      这里jdk告诉我们:如果一个类是通过bootstrap 载入的,那我们通过这个类去获得classloader的话,有些jdk的实现是会返回一个null的,比如说我用 new Object().getClass().getClassLoader()的话,会返回一个null,这样的话上面的代码就会出现NullPointer异常.所以保险起见我们最好还是使用我们自己写的类来获取classloader("this.getClass().getClassLoader()“),这样一来就不会有问题。

    getResourceAsStream()方法详解

    getResourceAsStream()用法与getResouce()方法一样的,用getResource()取得File文件后,再new FileInputStream(file) 与 getResourceAsStream() 的效果一样。。
     

    展开全文
  • 折腾的几天,使用maven打包后发现了问题,首先是打包的配置文件读取问题,使用getResource().getPah()会发现在访问jar包的文件时,路径里会有感叹号(杠杠滴~~)是这样的 …jar!.. 经过不断的查找资料及反复验证后...
  • maven打包成功但Java文件没有被编译

    千次阅读 2018-01-19 18:07:02
    maven打包提示打包成功, 启动项目时提示: java.util.zip.ZipException: error in opening zip file检查打包后的文件, 发现Java文件没有被编译, WEB-INF/classes下没有class文件, 查看eclipse的problems视图中...
  • maven打包静态文件

    千次阅读 2014-09-15 22:29:43
    将近太文件进行zip打包,实现动静分离 pom.xml [code="xml"] org.apache.maven.plugins maven-assembly-plugin 2.2 make-assembly package ...
  • 本人初来乍到,最近研究如何搭maven框架,那么在maven项目中重中之重就是如何配父模块的pom文件。为了支持不同环境下使用不同的配置文件,有多重多样的方式,之前了解过可以在工程构建打包阶段选择配置文件,运行...
  • Maven打包,不打包pom文件

    千次阅读 2014-09-25 15:21:17
    如果是 jar 包,在 Plugin 中配置      org.apache.maven.plugins  maven-jar-plugin      false         如果是 war 包,在 Plugin 中配置    
  • maven打包中文乱码

    千次阅读 2018-04-19 11:36:43
    va项目为第三方提供类库的时候,打好的jar包中,第... 部分文件编码为GBK,解决方法如下:(在打包时候设置编码类型为utf-8)   &lt;build&gt; &lt;plugins&gt; &lt;plugin&gt; ...
  • 文件目录如下 InputStream trustcaInputStream = Resources.getResourceAsStream("cert/ca.jks");... 打开pom.xml,必须把文件加入打包,不然是找不到的 <resources> <resource> ...
  • 一般情况下,我们用到的资源文件(各种xml,properites,xsd文件等)都放在src/main/resources下面,利用maven打包时,maven能把这些资源文件打包到相应的jar或者war里。   有时候,比如mybatis的mapper.xml文件...
  • 一 . 在项目根目录创建lib文件夹,把jar...pom文件配置如下: <!--导入本地jar--> <dependency> <groupId>com.aliyun</groupId> <artifactId>vod-upload</artifactId...
  • !...[图片说明](https://img-ask.csdn.net/upload/201610/17/1476679495_717821.png)maven在命令行打包项目 打包成功 但是在WEB-INF\classes这里没有文件 所以在部署项目时没有启动先项目 怎么解决
  • 1. springboot项目默认生成的可执行jar,为什么不能作为依赖导入其他项目? Spring Boot 项目默认的插件是spring-boot-maven-plugin: <plugin> <groupId>...使用上面的插件会将项目A打包
  • 最近做cxf+spring+mybatis集成的一个小例子,用maven打包后,mybatis的sql语句老是调不到。 报以下错误: javax.xml.ws.soap.SOAPFaultException: Invalid bound statement (not found)   原来是项目...
  • 工作中,给同事调试maven的自动化打包时,发现src/main/java中一些关于mybatis的xml都没有打包进去,导致war包启动不起来,在此记录一下,解决方法。 默认maven在src/main/java中只编译java文件,其他的文件会被忽略...
  • jenkins+maven动态打包配置文件

    万次阅读 2017-06-23 11:33:45
    上一篇写到打包war传输到远程服务器,这篇来写如何动态打包不同配置文件 ...dev目录和test目录中的两个properties文件就是要打包时候,动态替换的。 接下来我们看pom.xml配置,如下图 我们看到prof
  • 前几天遇到一个问题,我们的项目有自己开发的jar包,其中有个功能我希望从properties中读取文件的内容(资源文件的路径是/src/main/properties/zsc1/sys.properties),但是打完包(insatll命令)得到包放到环境之后...
  • mvn 打包打包配置文件I recently set up Dependabot for one of my Android projects. Quick summary: Dependabot will look at your dependency files (.gradle, pod files, package.json) and automatically ...
  • Maven打包失败:程序包XXX不存在

    千次阅读 2020-11-24 11:26:40
    Maven引入本地jar包这种做法非常不合理,很容易导致团队jar包混乱,最好尝试搭建私服解决。 1.问题实质:Maven仓库jar包下载失败或项目引入本地jar包Maven没有对应进行配置 2.问题原因: (1) 因网络或其他原因...
  • maven打包jar上传远程仓库

    千次阅读 2017-07-11 14:50:47
    maven打包jar上传远程仓库 创建角色、用户 查看远程仓库地址 setting.xml文件设置 这里的id要和远程地址仓库中的ID一致 &lt;server&gt; &lt;id&gt;releases&lt;/id&gt; ...
  • maven打包tar.gz文件

    千次阅读 2017-07-13 11:36:51
    项目目录结构:   pom.xml中添加: maven-assembly-plugin src/main/s/assembly/assembly.xml make-assembly
  • idea上打包maven项目,打的war没有引用项目的其他jar文件比如tk.mybatis的jar包,![图片说明](https://img-ask.csdn.net/upload/201907/08/1562585976_438475.png) ![图片说明]...
  • maven打包命令

    2020-04-06 14:32:19
    maven mvn 命令行 编译打包 </h1> <div class="clear"></div> <div class="postBody"> * 配置好...
  • 2.同时配置maven打包插件 在<configuration>里加入下面的代码: <!--将这个配置设置为 true,打包出来的 jar/war 就是可执行的了--> <executable>true</executable&...
  • 摘要:本文主要讲解是Maven使用过程中一些常用的命令,并配上图片说明,最后还讲了pom.xml文件的一些构造。-D传入属性参数-P使用pom中指定的配置-e显示maven运行出错的信息-o离线执行命令,即不去远程仓库更新包-X...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 12,135
精华内容 4,854
关键字:

maven打包的时候图片文件