精华内容
下载资源
问答
  • jar包中图片加载出错解决方案问题:图片加载报错解决方案:使用**InputStream**提升:这样写为什么可以?展示:这里展示下我做的jar包(一个简单的过场动画)源码:java代码及图片 如果你对eclipse中加载图片不太...

    如果你对eclipse中加载图片不太熟悉的话,恭喜你,看到了这篇文章。

    问题:图片加载报错

    这个问题其实很简单,因为jar包其实是一种压缩形式,你并不能通过File直接从中读到信息。

    解决方案:使用InputStream

            //创建马里奥图片的inputstream对象
            InputStream ma = this.getClass().getResourceAsStream("/mario_g.png");
            //创建路易吉图片的inputstream对象
            InputStream lu = this.getClass().getResourceAsStream("/luigi_g.png");       
            //使用ImageIO.read()方法直接读取成BufferedImage对象 
    		BufferedImage marioBufferedImage = ImageIO.read(ma);
    		BufferedImage luigiBufferedImage = ImageIO.read(lu);
    		//如果你需要的是Image对象的话,只需要强转一下就行了。这里使用BufferedImage因为他可以比较方便的改变图片的大小。
    		Image marioImage = (Image)marioBufferedImage;
    

    上面使用的路径,为src的相对路径。
    在这里插入图片描述

    提升:这样写为什么可以?

    我们这个this.getClass().getResourceAsStream显然是从.class文件所在目录中获取文件的,为什么我前面说只要写src的相对路径就行呢?

    首先,我们需要明白的是,eclipse在编译的时候,会将src目录下的文件和.java文件一并编译到bin目录下保持不变,而.java文件则被编译成了.class文件。

    这样你是不是明白了?咱们获取的的确不是src下的文件,但是bin下的确也有这个文件就是了。

    你现在是不是想着把图片放到bin目录下,是不是少放在src下一次,还要更精简一些呢?

    然而并不是,首先,你本次运行还是没问题的,因为你bin目录下的确有你放入的文件。但是,只要你修改了java代码,eclipse一重新编译class文件,哼哼,你src目录下没有的,bin目录下也就木大木大啦!而且你这样的话导出成jar包的时候里面会没有你的资源文件。。。

    那么这里再稍微讲下如何导出jar包吧,右键项目 -> Java -> JAR file -> Next -> 在 Select the export destination 下点 Browse.. 选一个路径 -> finish

    这样你就可以得到一个jar包了,里边只有编译好的class文件嘛,所以相对应的路径,就应该取class文件所在的路径咯,这也是你jar包文件取不到的原因。

    言归正传,你可能会想,取class文件所在路径,用this.getClass().getResource("/").getFile()不行吗?然后用得到的字符串,去新建一个File对象,也是在bin里取图片啊,为啥不行?

    这就要涉及到读取文件的方式了,InputStream读取方式,是将图片转换成流数据来读取,就好像是文件肚子里的蛔虫。而File的读取方式是先找到文件,再读取,就好像是侦探通过线索来找你。而导出成jar包侦探就找不到你了吗?还真找不到了!因为前面也说了,jar包是一种压缩文件的形式,他是一个文件,不是一个路径,就好像你藏在了一个人的梦里,而侦探又不是什么神仙,怎么可能从别人的梦里找到你?这个解答满意否?

    下面再顺便讲讲使用jar包吧,很简单,在项目下新建一个lib目录,然后把你生成的jar包拖进去,右键它,点Build Path -> Add To Build Path就行了,你就可以创建jar包里的类的对象来使用它的方法了。

    展示:这里展示下我做的jar包(一个简单的过场动画)

    在这里插入图片描述

    源码:java代码及图片

    这是创建jar包前的源码,创建jar包的时候可以把public class去掉。

    import java.awt.Container;
    import java.awt.Graphics;
    import java.awt.Image;
    import java.awt.image.BufferedImage;
    import java.io.IOException;
    import java.io.InputStream;
    import java.net.URISyntaxException;
    import javax.imageio.ImageIO;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    
    @SuppressWarnings("serial")
    public class GuoChangTest extends JFrame{
    	public GuoChangTest(String title) throws IOException, InterruptedException, URISyntaxException
        {
            JFrame jf = new JFrame(title);    
            Container conn = jf.getContentPane();    //得到窗口的容器
            DrawGuoChang guochang = new DrawGuoChang(790,580);
            conn.add(guochang);
            jf.setBounds(300,80,800,600); //设置窗口的属性 窗口位置以及窗口的大小
            jf.setVisible(true);//设置窗口可见
            jf.setDefaultCloseOperation(DISPOSE_ON_CLOSE); //设置关闭方式 如果不设置的话 似乎关闭窗口之后不会退出程序
            guochang.run();
        }
        
        public static void main(String[] args) throws IOException, InterruptedException, URISyntaxException {
            new GuoChangTest("过场动画测试");        //创建窗口
        }
    
    }
    
    @SuppressWarnings("serial")
    class DrawGuoChang extends JPanel{
    	
    	private int width;
    	private Image marioImage;
    	private Image luigiImage;
    	private int imgWidth;
    	private int imgHeight;
    	private int t;
    	
    	public DrawGuoChang(int width,int height) throws IOException, URISyntaxException {
    		this.width = width;
            InputStream ma = this.getClass().getResourceAsStream("/mario_g.png");
            InputStream lu = this.getClass().getResourceAsStream("/luigi_g.png");        
    		BufferedImage marioBufferedImage = ImageIO.read(ma);
    		BufferedImage luigiBufferedImage = ImageIO.read(lu);
    		imgHeight = height/6;
    		double scale = imgHeight/(double)marioBufferedImage.getHeight();
    		imgWidth = (int) (marioBufferedImage.getWidth()*scale);
    		this.marioImage = marioBufferedImage.getScaledInstance((int) imgWidth,  imgHeight, Image.SCALE_DEFAULT);
    		this.luigiImage = luigiBufferedImage.getScaledInstance((int) imgWidth,  imgHeight, Image.SCALE_DEFAULT);
    	}
    	
    	public void run() throws InterruptedException {
    		t=0;
    		while(true) {
    			t++;
    			Thread.sleep(20);
    			super.repaint();
    			if(t==-1) {
    				return;
    			}
    		}
    	}
    	
    	protected void paintComponent(Graphics g) {
    		int xm,xl=1;
    		for(int i=0;i<3;++i) {
    			if(t>=0) {
    				xm=-100-imgWidth+t*10;
    				xl=100+width-t*10;				
    			}else {
    				xm=-100-imgWidth;
    				xl=100+width;								
    			}
    			g.drawImage(marioImage, xm, imgHeight*i*2, null);
    			g.drawImage(luigiImage, xl, imgHeight*i*2+imgHeight, null);
    		}
    		if(xl<=0) {
    			t=-40;
    		}
    	}
    	
    }
    
    

    图片是我自己网上找的图片然后ps做的。
    在这里插入图片描述
    mario_g.png

    在这里插入图片描述
    luigi_g.png

    展开全文
  • Android动态加载外部jar包及jar包中图片等资源文件Android应用程序由Java开发,因此Java中许多实用的特性,在Android中也有体现。动态加载Class,也就是外部jar包,在Java中简单的方法就是在项目的Bulid Path中导入...

    Android动态加载外部jar包及jar包中图片等资源文件

    Android应用程序由Java开发,因此Java中许多实用的特性,在Android中也有体现。动态加载Class,也就是外部jar包,在Java中简单的方法就是在项目的Bulid Path中导入jar,然后就可以使用jar包中的Class文件,这些,都需要java虚拟机的支持。

    Android的虚拟机与java虚拟机有区别。所以在动态加载jar包上面有区别。简单来说就是android的虚拟机不能识别jar包,需要将jar包转换为可识别的dex文件(android系统可执行文件)。

    Android中动态加载jar包的类,使用DexClassLoader来实现。

    Jar包中可以打进android项目res文件夹下的资源文件,android中亦可以对jar包中的资源文件进行加载。

    Android中加载jar包中的如txt,png等文件,使用JarFile类进行。

    2.制作jar包,转换为dex文件

    使用面向接口编程:

    2.1写好功能接口与接口的实现。

    0818b9ca8b590ca3270a3433284dd417.png

    0818b9ca8b590ca3270a3433284dd417.png

    0818b9ca8b590ca3270a3433284dd417.png

    2.2将接口打成IDynamic.jar,将接口实现打成Dynamic.jar

    0818b9ca8b590ca3270a3433284dd417.png 

    0818b9ca8b590ca3270a3433284dd417.png

    面向接口编程,调用jar包的项目导入接口的jar包,接口实现的jar包放在项目外部,用于调用。

    2.3将功能接口的实现类的jar包转为dex文件

    1)     将Dynamic.jar复制到adt-bundle-windows-x86-20131030\sdk\build-tools\android-4.4,将jar包转为android识别的dex文件。

    2)     进入cmd,cd到上面的目录,执行命令:

    dx  --dex --output  = Dynamic_temp.jar  Dynamic.jar

    Dynamic_temp.jar是要生成的dex包。

    注:jar包中可以将res中的资源打包进去。

    3.使用jar包,动态加载。

    1.      将接口实现类的jar包Dynamic_temp.jar导入到模拟器的sd卡上,为了方便,直接导入根目录下。

    2.      将接口IDynamic.jar导入需要调用的项目中。

    3.1动态加载jar包中的Class,例子是在activity中:

    //动态加载类的接口

    private IDynamic lib = null;

    // android可执行class加载器

    private DexClassLoader c1;

    //动态加载外部(sd卡中)jar包的路径

    privateString jarPath;

    // jar解压路径,jar包中的dex文件会被解压缩

    privateString jarOutputPath;

    jarPath = Environment.getExternalStorageDirectory()

    .toString() + File.separator + "dynamic_temp.jar";

    jarOutputPath = Environment.getExternalStorageDirectory()

    .toString() + File.separator + "ExtendJar";

    //定义DexClassLoader

    //第一个参数:是dex压缩文件的路径

    //第二个参数:是dex解压缩后存放的目录

    //第三个参数:是C/C++依赖的本地库文件目录,可以为null

    //第四个参数:是上一级的类加载器

    c1 = new DexClassLoader(jarPath, jarOutputPath, null, getClassLoader());

    try {

    Class> dynamic = c1

    .loadClass("com.dynamic.interfacesImpl.Dynamic");

    lib = (IDynamic) dynamic.newInstance();

    if (lib != null) {

    lib.init(MainActivity.this);

    }

    } catch (Exception e) {

    e.printStackTrace();

    }

    在按钮的点击事件中调用jar中的方法:

    public void onClick(View arg0) {

    lib.showToast();

    }

    0818b9ca8b590ca3270a3433284dd417.png

    3.2动态加载jar包中的资源:图片、文本等

    将jar包中打入资源文件,例子中是res/drawable-mdpi/ic_launcher.png,及jar自带的META-INF/MANIFEST.MF文件。

    3.2.1解析jar包中的文本文件:

    Button btn4 = (Button) findViewById(R.id.btn4);

    btn4.setOnClickListener(new View.OnClickListener() {

    public void onClick(View arg0) {

    JarFile jarfile;

    InputStream is;

    try {

    jarfile = new JarFile(jarPath);

    is = jarfile.getInputStream(jarfile

    .getEntry("META-INF/MANIFEST.MF"));

    StringBuffer out=new StringBuffer();

    byte[] b=new byte[4096];

    for (int n; (n = is.read(b)) != -1;) {

    out.append(new String(b, 0, n));

    }

    TextView txt = (TextView) MainActivity.this

    .findViewById(R.id.textView);

    txt.setText(out.toString());

    is.close();

    } catch (IOException e) {

    //TODOAuto-generated catch block

    e.printStackTrace();

    }

    }

    });

    将从jar包中读出的文本文件,以inputStream流的形式读出,再输出。

    3.2.2 解析jar包中的图片

    将jar包中的图片以inputStream流的形式读出,再将inputStream流转为bmp图片对象,进行使用。

    Button btn3 = (Button) findViewById(R.id.btn3);

    btn3.setOnClickListener(new View.OnClickListener() {

    @Override

    public void onClick(View arg0) {

    //TODOAuto-generated method stub

    JarFile jarfile;

    InputStream is;

    try {

    jarfile = new JarFile(jarPath);

    is = jarfile.getInputStream(jarfile

    .getEntry("res/drawable-mdpi/ic_launcher.png"));

    /*

    *将inputStream流转为bmp对象

    */

    Bitmap bmp = BitmapFactory.decodeStream(is);

    ImageView img = (ImageView) MainActivity.this

    .findViewById(R.id.img);

    img.setImageBitmap(bmp);

    is.close();

    } catch (IOException e) {

    //TODOAuto-generated catch block

    e.printStackTrace();

    }

    }

    });

    效果图

    0818b9ca8b590ca3270a3433284dd417.png

    http://wenku.baidu.com/link?url=a_7Mz0z7EWH3JkCkqc4rFpivzkDsFVIyr-smsDqyoeAAJq4x_w4QOllzNoJp4OxjEnSmCVnGA-NAfkMdu1lWK6ahc7nI-RU3nlTOfATk58u

    展开全文
  • init初始化没问题,但是新建了一个drawable包将图片放进去以后就显示报错不能安装 解决 :包中图片有个有问题,等老师上课说,先将需要用的图标放进去

    init初始化没问题,但是新建了一个drawable包将图片放进去以后就显示报错不能安装




    解决 :包中图片有个有问题,等老师上课说,先将需要用的图标放进去


    找到问题图片,但是名字并没有什么问题,

    总之还是要严格按照命名规范来命名图片名称

    图片命名严格 :字母/数字/下划线,只能以字母开头

    展开全文
  • Android动态加载外部jar包及jar包中图片等资源文件 Android应用程序由Java开发,因此Java中许多实用的特性,在Android中也有体现。动态加载Class,也就是外部jar包,在Java中简单的方法就是在项目的Bulid Path中导入...

    Android动态加载外部jar包及jar包中图片等资源文件

    Android应用程序由Java开发,因此Java中许多实用的特性,在Android中也有体现。动态加载Class,也就是外部jar包,在Java中简单的方法就是在项目的Bulid Path中导入jar,然后就可以使用jar包中的Class文件,这些,都需要java虚拟机的支持。

    Android的虚拟机与java虚拟机有区别。所以在动态加载jar包上面有区别。简单来说就是android的虚拟机不能识别jar包,需要将jar包转换为可识别的dex文件(android系统可执行文件)。

    Android中动态加载jar包的类,使用DexClassLoader来实现。

    Jar包中可以打进android项目res文件夹下的资源文件,android中亦可以对jar包中的资源文件进行加载。

    Android中加载jar包中的如txt,png等文件,使用JarFile类进行。

    2.制作jar包,转换为dex文件

    使用面向接口编程:

    2.1写好功能接口与接口的实现。



    2.2将接口打成IDynamic.jar,将接口实现打成Dynamic.jar

     

     

       面向接口编程,调用jar包的项目导入接口的jar包,接口实现的jar包放在项目外部,用于调用。

    2.3将功能接口的实现类的jar包转为dex文件

    1)     将Dynamic.jar复制到adt-bundle-windows-x86-20131030\sdk\build-tools\android-4.4,将jar包转为android识别的dex文件。

    2)     进入cmd,cd到上面的目录,执行命令:

    dx  --dex --output  = Dynamic_temp.jar  Dynamic.jar

    Dynamic_temp.jar是要生成的dex包。

     

    注:jar包中可以将res中的资源打包进去。

    3.使用jar包,动态加载。

    1.      将接口实现类的jar包Dynamic_temp.jar导入到模拟器的sd卡上,为了方便,直接导入根目录下。

    2.      将接口IDynamic.jar导入需要调用的项目中。

    3.1动态加载jar包中的Class,例子是在activity中:

    // 动态加载类的接口

       private IDynamic lib = null;

       // android 可执行class加载器

       private DexClassLoader c1;

       // 动态加载外部(sd卡中)jar包的路径

    private String jarPath;

       // jar解压路径,jar包中的dex文件会被解压缩

       private String jarOutputPath;

     

     

    jarPath = Environment.getExternalStorageDirectory()

               .toString() + File.separator + "dynamic_temp.jar";

      

    jarOutputPath = Environment.getExternalStorageDirectory()

               .toString() + File.separator + "ExtendJar";

     

    // 定义DexClassLoader

          // 第一个参数:是dex压缩文件的路径

          // 第二个参数:是dex解压缩后存放的目录

          // 第三个参数:是C/C++依赖的本地库文件目录,可以为null

          // 第四个参数:是上一级的类加载器

          c1 = new DexClassLoader(jarPath, jarOutputPath, null, getClassLoader());

          try {

            Class<?> dynamic = c1

                  .loadClass("com.dynamic.interfacesImpl.Dynamic");

            lib = (IDynamic) dynamic.newInstance();

            if (lib != null) {

               lib.init(MainActivity.this);

            }

          } catch (Exception e) {

            e.printStackTrace();

          }

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    在按钮的点击事件中调用jar中的方法:

    public void onClick(View arg0) {

              lib.showToast();

            }

     

     

     

     

     

     

    3.2动态加载jar包中的资源:图片、文本等

    将jar包中打入资源文件,例子中是res/drawable-mdpi/ic_launcher.png,及jar自带的META-INF/MANIFEST.MF文件。

    3.2.1解析jar包中的文本文件:


    Button btn4 = (Button) findViewById(R.id.btn4);

          btn4.setOnClickListener(new View.OnClickListener() {

            public void onClick(View arg0) {

                JarFile jarfile;

               InputStream is;

    try {

                  jarfile = new JarFile(jarPath);

                  is = jarfile.getInputStream(jarfile

                        .getEntry("META-INF/MANIFEST.MF"));

                  StringBuffer out=new StringBuffer();

                  byte[] b=new byte[4096];

                  for (int n; (n = is.read(b)) != -1;) { 

                     out.append(new String(b, 0, n));

                  }

                  TextView txt = (TextView) MainActivity.this

                        .findViewById(R.id.textView);

                  txt.setText(out.toString());

                  is.close();

    } catch (IOException e) {

                  // TODO Auto-generated catch block

                  e.printStackTrace();

               }

              

     

            }

          });

       

    将从jar包中读出的文本文件,以inputStream流的形式读出,再输出。

    3.2.2 解析jar包中的图片

    将jar包中的图片以inputStream流的形式读出,再将inputStream流转为bmp图片对象,进行使用。

    Button btn3 = (Button) findViewById(R.id.btn3);

          btn3.setOnClickListener(new View.OnClickListener() {

     

            @Override

            public void onClick(View arg0) {

               // TODO Auto-generated method stub

               JarFile jarfile;

               InputStream is;

     

               try {

                  jarfile = new JarFile(jarPath);

                  is = jarfile.getInputStream(jarfile

                        .getEntry("res/drawable-mdpi/ic_launcher.png"));

                 

                  /*

                   *inputStream流转为bmp对象

                   */

                  Bitmap bmp = BitmapFactory.decodeStream(is);

                  ImageView img = (ImageView) MainActivity.this

                        .findViewById(R.id.img);

                  img.setImageBitmap(bmp);

                 

                  is.close();

     

               } catch (IOException e) {

                  // TODO Auto-generated catch block

                  e.printStackTrace();

               }

     

            }

          });

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     

     


    效果图

     

     

    http://wenku.baidu.com/link?url=a_7Mz0z7EWH3JkCkqc4rFpivzkDsFVIyr-smsDqyoeAAJq4x_w4QOllzNoJp4OxjEnSmCVnGA-NAfkMdu1lWK6ahc7nI-RU3nlTOfATk58u

    展开全文
  • jar包中的资源读取不到,真心难过,后来发现可以通过流的方式把资源读取出来(包括.class本身) //读取jar包中的资源,但是读到的是InputStream InputStream is=this.getClass().getResourceAsStream("/Plugin/...
  •  ueditor编辑器 在tomcat下运行与war运行时,tomcat下的图片上传时会自动获取tomcat下的文件夹目录,将上传的图片写入文件夹。  我们的程序是war包运行的,图片无法写入war包,只能把图片放在外边,为解决此...
  • jar cvf *.jar *.class *.jpg打好jar包后 1. 若要jar包可打开执行,则改动jar... 对于加载图片,见:转载(1)你将所有资源打包为andy.jar,你的类位于一个包中:package andycpp;你的图片资源全部放在images文件夹中
  • 程序中要显示图片,而且还要使用MySQL的JDBC Driver类,将mysql-connector-java-5.1.8-bin.jar和需要的图片文件夹pic加入工程中,但图片不能正常显示,并 且数据库连接失败。 先解决图片的问题。图片的显示有两种...
  • iPhone的CgBI格式的png则将原始的png图片作如下变化:增加一个新的关键块 CgBI Chunk 四个字节zlib的header和CRC信息全部从IDAT中移除红蓝交换,每一个像素(RGBA)中的R和B进行调换变成BGRA ,解压后每一个像素有四...
  • 1.eclipse导出Java项目形成的jar包中没有图片文件夹 当使用export导出是选择Runnable JAR File(可运行的jar文件)时,通过实验发现导出的jar包中并没有图片文件夹。具体原因我也不太清楚,于是将图片文件夹移到src...
  • 从bag包中提取图片和点云数据为pcd格式点云文件1 开始提取bag包之前的准备工作2 从bag包中提取图片和点云数据 首先说明一下我运行的系统环境: python2 Ubuntu18.04 ROS melodic 1 开始提取bag包之前的准备工作 ...
  • jar包中访问图片

    千次阅读 2010-04-10 16:51:00
    当你编写一个图形界面的程序的时候,你肯定要使用各种图片资源。那么,当你发布你的程序的时候,这些图片资源如何发布呢?最简洁的方式就是将这些图片资源连同你的class文件一起打包为一个可执行Jar文件,这样你只需...
  • JFC系列5之从JAR包中获取图片

    千次阅读 2011-06-26 08:54:00
    在JAR包中获取图片,可以通过getResource获取到该图片的一个URL对象,再通过URL对象创建图像。具体实现如下: 从JAR包中获取ImageIcon。 /** * 从JAR包中获取 ImageIcon 对象。 * * @param clazz * @param ...
  • 读取jar包中图片,,如下代码,使用getRe如下代码,使用getResourceAsStream返回jar中文件的InputStream流:Image img = null;try { MediaTracker m = new MediaTracker(this); InputStream is = getClass()....
  • 如何读取jar包中图片

    千次阅读 2014-11-05 00:24:00
    如何读取jar包中图片? ‍一、首先,在eclipse中正常读取图片(用swing图形界面来测试)。‍ 1、目录结构如下图所示: test为工程名,测试类为photo.ReadTest,图片文件为img\test.png。 2、代码如下所示: ...
  • 从bag包中提取图片和点云数据

    千次阅读 2020-10-18 13:49:25
    之前录了一些激光雷达点云数据以及双目相机的图像数据,需要从bag包中提取出来,以便后续使用。 bag中提取点云 bag中提取点云数据 bag中提取图片 查看bag信息 rosbag info yourname.bag 可以看到如下图bag包信息: ...
  • 读取jar包中图片,文本, 文本会写到控制台,图片会输出到F:盘中
  • java 引用jar包中图片

    千次阅读 2011-08-17 10:47:23
    对于加载图片,你将所有资源打包,你的类位于一个包中,你的图片资源全部放在images文件夹中,而images文件夹也位于andycpp包内。这样的话,最终的路径表现为: *.jar  |__andycpp  |__ GU
  •  为解决此问题,在AppActivity的基类Cocos2dxActivity的init时,显示一张背景图片即可。  由于Cocos2dxActivity位于classes.jar中,所以无法通过R.drawable.xxx来访问项目res/drawable中的资源。为解决此问题,...
  • 在JAR包中读取图片

    2010-02-01 13:59:57
    当你编写一个图形界面的程序的时候,你肯定要使用各种图片资源。那么,当你发布你的程序的时候,这些图片资源如何发布呢?最简洁的方式就是将这些图片资源连同你的class文件一起打包为一个可执行Jar文件,这样你只需...
  • android动态加载jar包中图片

    千次阅读 2015-04-08 19:31:15
    今天学习了如何动态的加载jar文件中的图片,当然,我们首先需要做的就是新建一个android工程,然后拷贝图片到res/drawable目录下,然后将该项目导出为jar文件,拷贝到sd卡指定目录。接下来就是加载jar文件中的图片的...
  • SpringCloud之获取Jar包中图片

    千次阅读 2018-05-09 14:36:55
    1、获取图片template.jpg的输入流 InputStream inputStream = (InputStream) this.getClass().getClassLoader().getResourceAsStream("template.jpg"); 2、定义输出流 javax.servlet.ServletOutputStream out ...
  • java图片在jar包中路径问题

    千次阅读 2016-04-19 16:13:23
    java图片在jar包中路径问题 因为Windows和linux上的路径有差异,而且自己项目路径和linux服务器上的路径不一定相同。最近要做个需求,动态的生成pdf文件供前台页面下载,我利用itext生成了pdf,但是在加载图片加入...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 48,478
精华内容 19,391
关键字:

包中图片