Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 319
  • Last Modified:

ResourceBundle not found

Hi experts,

I have a java program and two .properties files which are myResource.properties and myResource_ms_MY.properties. All there three files are in c:\myprogram folder.

The java program

import java.util.*;

public class ResourceBundleResearch
{
      public static void main(String[] args)
      {
            Locale locale1, locale2;
            ResourceBundle resourceBundle;
                  
            locale1 = Locale.getDefault();
            
            locale2 = new Locale("ms", "MY");

            resourceBundle = ResourceBundle.getBundle("myResource", locale2);
            System.out.println(resourceBundle.getString("Cancel"));


      }
}

myResources.properties

Cancel=CancelDetails
Enter=EnterDetails
Delete=DeleteDetails

myResources_ms_MY.properties

Cancel=Batal
Enter=Masuk
Delete=Padam

I have set the classpath to C:\myprogram

When i run the java program, i get

Exception in thread "main" java.lang.NoClassDefFoundError: ResourceBundle

How can i rectify it? Thanks
0
ricjava
Asked:
ricjava
  • 11
  • 9
  • 3
  • +1
1 Solution
 
zzynxSoftware engineerCommented:
ResourceBundle is part of the java sdk. Apparently that can't be found.
Have a thorough read of http://mindprod.com/jgloss/classpath.html
0
 
grim_toasterCommented:
Which JDK are you using?  ResourceBundle has been around since JDK 1.1, do you have an older JDK installed that it's using?  To find out, at the command prompt do:

java -version

If you have an old one (possibly installed by windows), ensure that a newly downloaded versions location is first in the path.
0
 
ricjavaAuthor Commented:
i'm using jdk1.4
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
expertmbCommented:
there is no locale called "ms"
0
 
ricjavaAuthor Commented:
zzynx - I don't have to do any with my classpath, isn't it? Since ResourceBundle is part of java API.......

Anyone can copy and paste my codes to run?
0
 
ricjavaAuthor Commented:
i thought "ms" is valid ISO lang code for malay and "MY" is valid iso code for Malaysia...........i'll check..
0
 
zzynxSoftware engineerCommented:
>>ResourceBundle is part of java API
Indeed. But apparently the java API classes can't be found.
And that has to do with your class path, yes.
0
 
ricjavaAuthor Commented:
expertmb - yes "ms" is a valid ISO language code in http://www.ics.uci.edu/pub/ietf/http/related/iso639.txt

zzynx - remember that day i run the Properties class and that can be found. If properties can be found then why not ResourceBundle. They are from java api.

0
 
ricjavaAuthor Commented:
I thought classpath is set if we import any java classes that are not part of Java API.
0
 
expertmbCommented:
this what i got when i ran your example

Exception in thread "main" java.util.MissingResourceException: Can't find bundle
 for base name myResource, locale ms_MY
        at java.util.ResourceBundle.throwMissingResourceException(ResourceBundle
.java:837)
        at java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:806)
        at java.util.ResourceBundle.getBundle(ResourceBundle.java:577)
        at ResourceBundleResearch.main(ResourceBundleResearch.java:14)
0
 
zzynxSoftware engineerCommented:
>>I thought classpath is set
the class path is never set automatically.
>>remember that day i run the Properties class and that can be found.
Did you also run it
- the same way
- in c:\myprogram ?
0
 
expertmbCommented:
>>When i run the java program, i get

0
 
ricjavaAuthor Commented:
zzynx - i was able to run Properties class that day without having any CLASSPATH created as env var in my computer.

Did you also run it
- the same way
- in c:\myprogram ?
absolutely.....

0
 
zzynxSoftware engineerCommented:
How do you run it?
0
 
ricjavaAuthor Commented:
i just run from C

C:\myprogram\java ResourceBundle

0
 
ricjavaAuthor Commented:
hope this time my problem won't be a tougher exam question for students :)
0
 
zzynxSoftware engineerCommented:
Try
        C:\myprogram\java -classpath . ResourceBundle
0
 
zzynxSoftware engineerCommented:
>>just run from C
>>C:\myprogram\java ResourceBundle

I hope you meant

        C:\myprogram\java ResourceBundleResource            // Your class is called ResourceBundleRESOURCE !!!!

Then try
        C:\myprogram\java -classpath . ResourceBundleResource



0
 
zzynxSoftware engineerCommented:
I think that's your problem

Don't start it as

        C:\myprogram\java ResourceBundle

but as

        C:\myprogram\java ResourceBundleResource
0
 
ricjavaAuthor Commented:
sorry.........i didn't start with

c:\myprogram\java ResourceBundle

but

c:\myprogram\java ResourceBundleResearch
0
 
zzynxSoftware engineerCommented:
Did you already try

        C:\myprogram\java -classpath . ResourceBundleResource

?
0
 
ricjavaAuthor Commented:
Thanks:)
0
 
zzynxSoftware engineerCommented:
Thanks for accepting.

You see, the first link wasn't that bad ;°)
I quote:

     7. To run a HelloWorld.class app, in the default package in C:\MyDir, use
           CD \MyDir
           java.exe -classpath . HelloWorld

Btw, next time make sure you accept the right comment (ResourceBundleResource instead of ResourceBunde)
0
 
ricjavaAuthor Commented:
zzyn,

oh yes....should be your second last comment:)
0

Featured Post

VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

  • 11
  • 9
  • 3
  • +1
Tackle projects and never again get stuck behind a technical roadblock.
Join Now