Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 1081689
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 16, 20262026-05-16T22:12:02+00:00 2026-05-16T22:12:02+00:00

How do you add a folder (e.g. a resource folder containing arts) to the

  • 0

How do you add a folder (e.g. a resource folder containing arts) to the classpath of a netbeans project? I managed to do that manually via editing the NB generated jar file of the project (that is its MANIFEST.MF file + copying the resources manually), but there should be a way to tell netbeans as well to mind the resources, no?

The folder structure looks like this:

/project/art/
/project/dist/lib/
/project/dist/art/
/project/dist/project.jar
/project/lib/
/project/src/

I don’t want to package the art into the jar because I’d like the art to be easily exchangeable. If I add the art folder to the src folder then NB compiles fine, but the art resources end up in the jar.

Adding the art folder to the netbeans project libraries (Properties -> Libraries -> Add JAR/Folder) seemed not to work, because then I ended up with an error ‘…\project\art is a directory or can’t be read. Not copying the libraries.’ which in turn prevents even the real libraries folder from being copied.

Any ideas?

Best regards
Chris

2 Observations made, based on the comments from gpeche:
a) Rather specifying the additional resources folder in the “Run” tab than in the “Compile” tab of the project properties -> Libraries doesn’t seem to make a lot of difference in Netbeans (I’m currently using 6.9.1). The output (and thus error) stays the same, that is nothing gets copied at all:

Created dir: C:\Users\Chrisi\Desktop\vocabulary\VocabularyTrainer\dist
C:\Users\Chrisi\Desktop\vocabulary\VocabularyTrainer\art is a directory or can't be read. Not copying the libraries.
Not copying the libraries.
Building jar: C:\Users\Chrisi\Desktop\vocabulary\VocabularyTrainer\dist\VocabularyTrainer.jar

Another interesting aspect is that in the help menu of the Libraries panel nothing is explicitly mentioned regarding folders as libraries. Could it be possible, that the button in Netbeans is falsely named, that is only real jar’s are allowed?

b) Adding the resources folder to the Libraries list does have the impact though, to add another entry to the MANIFEST.MF. While – and that’s the smaller issue – the classpath entry seems to be always expecting the resource folder to be a subfolder of the library folder (e.g. “lib/arts”) the major problem is that there seems to be a slash missing.
As mentioned the NB generated entry in the MANIFEST.MF will look like this “lib/arts” (which does not work for me), while (manually set) “lib/arts/” does?!

The way I use resources from the folder is something like this:

URL resource = getClass().getResource("/gui/refresh.png");
ImageIcon tmp = new ImageIcon(resource);

Edit:

Based on Tushars comment and this posting I found the following solution to be an acceptable tradeoff between functionality and comfort.

I override the ANT target from the auto generated ‘build-impl.xml’ file which creates the Class-Path in the MANIFEST.MF file in the basic ‘build.xml’ file of the Netbeans project. The code which goes to the ‘build.xml’ file looks like this:

  <property name="art.classpath" value="art/" />

  <target name="-post-jar">
    <mkdir dir="${dist.dir}/art"/>
    <copy todir="${dist.dir}/art">
      <fileset dir="${basedir}/art">
        <!-- <exclude name="**/!source/**"/> if you want to exclude something... -->
      </fileset>
    </copy>
  </target>

  <target name="-init-macrodef-copylibs">
    <macrodef name="copylibs" uri="http://www.netbeans.org/ns/j2se-project/3">
      <element name="customize" optional="true"/>
      <sequential>
        <property location="${build.classes.dir}" name="build.classes.dir.resolved"/>
        <pathconvert property="run.classpath.without.build.classes.dir">
          <path path="${run.classpath}"/>
          <map from="${build.classes.dir.resolved}" to=""/>
        </pathconvert>
        <pathconvert pathsep=" " property="jar.classpath">
          <path path="${run.classpath.without.build.classes.dir}"/>
          <chainedmapper>
            <flattenmapper/>
            <globmapper from="*" to="lib/*"/>
          </chainedmapper>
        </pathconvert>
        <taskdef classname="org.netbeans.modules.java.j2seproject.copylibstask.CopyLibs" classpath="${libs.CopyLibs.classpath}" name="copylibs"/>
        <copylibs compress="${jar.compress}" index="${jar.index}" jarfile="${dist.jar}" manifest="${manifest.file}" runtimeclasspath="${run.classpath.without.build.classes.dir}">
          <fileset dir="${build.classes.dir}"/>
          <manifest>
            <attribute name="Class-Path" value="${jar.classpath} ${art.classpath}"/>
            <customize/>
          </manifest>
        </copylibs>
      </sequential>
    </macrodef>
  </target>

The tradeoff is that for development in Netbeans I still have to add the resource folder (e.g. ‘art’) to the libraries list to make the project run in Netbeans. This will cause an additional entry in the MANIFEST.MF file (‘lib/art’) along with the effect that the libraries will not get automatically copied to the ‘dist’ folder, with the message

...\art is a directory or can't be read. Not copying the libraries.
Not copying the libraries.

This behavor is – afaik – intended (to force everything to be bundled up in a jar), even though there are discussions about it going on. To make a real distribution bundle I’d have to take away the resource folder(s) from the library list in NB and rebuild.

Ideas about a more streamlined setup without any tradeoffs are of course still welcome. 🙂

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-16T22:12:02+00:00Added an answer on May 16, 2026 at 10:12 pm
    1. Adding resource folder to classpath:

      When you Clean-&-Build a NetBeans Ant Based Project it creates a manifest.mf file in the root directory of the project. This file gets included in the JAR file also. Modify this file and add entry like follows:

      Manifest-Version: 1.0
      X-COMMENT: Main-Class will be added automatically by build
      Class-Path: arts/  
      

      slash is important after arts in the class path.

    2. Including the arts resource folder in the distribution

      Either copy this folder in the dist folder after the build or add a ANT target to copy the required resources in the dist folder.

      Add the target like as follows in the build.xml file:

      <target name="-post-jar">
           <mkdir dir="${dist.dir}/resources"/>
           <copy todir="${dist.dir}/resources">
               <fileset dir="${basedir}/resources" />
           </copy>
       </target>
      
    3. Code to access such resources:

      The code needed to access such resource files shall be as follows: (This will not work in design time but surely from the JAR file)

      // pay attention to relative path
      URL resource = ClassLoader.getSystemResource("gui/refresh.png"); 
      ImageIcon tmp = new ImageIcon(resource);
      

      NOTE: The files manifest.mf and build.xml located in the root directory of the project are accessible from the Files Panel in NetBeans IDE

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I don't want to submit projectname.project folder. Now, I use like that git add
I have a java application that reads a resource folder containing a bunch of
In my iPhone project I want to add a new resource folder. Lets say
i have a list box and i want to add a folder/directory to that
How can I create Libs folder in my android project. I want to Add
I have downloaded two .mov files from internet and add it to resource folder
How can I dynamically(by code) add Images to my resource folder?
I am trying to add a png image resource in a specific Silverlight project
I want to access all the files in a folder to add to a
How can i add a WCF application as a folder under IIS. Iam able

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.