相关疑难解决方法(0)

如何列出JAR文件中的文件?

我有这个代码从目录中读取所有文件.

    File textFolder = new File("text_directory");

    File [] texFiles = textFolder.listFiles( new FileFilter() {
           public boolean accept( File file ) {
               return file.getName().endsWith(".txt");
           }
    });
Run Code Online (Sandbox Code Playgroud)

它很棒.它使用目录"text_directory"中以".txt"结尾的所有文件填充数组.

如何 JAR文件中以类似的方式读取目录的内容?

所以我真正想做的是,列出我的JAR文件中的所有图像,所以我可以加载它们:

ImageIO.read(this.getClass().getResource("CompanyLogo.png"));
Run Code Online (Sandbox Code Playgroud)

(那个是有效的,因为"CompanyLogo"是"硬编码的",但JAR文件中的图像数量可以是10到200个可变长度.)

编辑

所以我想我的主要问题是:如何知道我的主类所在的JAR文件名称

当然,我可以使用它来阅读它java.util.Zip.

我的结构是这样的:

他们就像:

my.jar!/Main.class
my.jar!/Aux.class
my.jar!/Other.class
my.jar!/images/image01.png
my.jar!/images/image02a.png
my.jar!/images/imwge034.png
my.jar!/images/imagAe01q.png
my.jar!/META-INF/manifest 
Run Code Online (Sandbox Code Playgroud)

现在我可以使用以下命令加载例如"images/image01.png":

    ImageIO.read(this.getClass().getResource("images/image01.png));
Run Code Online (Sandbox Code Playgroud)

但只是因为我知道文件名,其余的我必须动态加载它们.

java jar file getresource java-io

107
推荐指数
9
解决办法
13万
查看次数

我可以找出java程序是使用java还是javaw启动的

这与另一个用户的早期问题有关,询问如何检测代码是否在eclipse IDE中运行.

我注意到Eclipse总是启动程序javaw而不是java.(这并不意味着javaw从Eclipse启动的程序启动).

我可以找到使用的参数

RuntimeMXBean RuntimemxBean = ManagementFactory.getRuntimeMXBean();
List<String> lst = RuntimemxBean.getInputArguments();
for (int i = 0; i < lst.size(); i++)
    System.out.println(lst.get(i));
Run Code Online (Sandbox Code Playgroud)

但这并没有告诉我它是否是使用java或启动的javaw.

  1. 有没有办法找出它是否是使用java或推出javaw
  2. 为什么Eclipse用于javaw启动程序?

java eclipse javaw

8
推荐指数
1
解决办法
3689
查看次数

检测主类

锄头我能检测出我应用程序的主要类吗?一个,是在命令行上给出还是从命令行给出的jar加载?

如果这不可能,为什么不呢?

编辑:也许我不清楚.我知道我的应用程序总会有很多入口点,但是当应用程序运行时,只有一个入口点用于启动当前的JVM.这是我需要知道的.

java

3
推荐指数
1
解决办法
1000
查看次数

标签 统计

java ×3

eclipse ×1

file ×1

getresource ×1

jar ×1

java-io ×1

javaw ×1