Java Classpath Issue












0















I have two classes:




MyApplication
Library




The Library has already been compiled into Library.class and the source code is no longer available. I am now trying to compile MyApplication from source. MyApplication depends on the Library. The Library has a package name of org.myCompany. I tried setting my classpath to the following:



set CLASSPATH=C:javaprojectorgmyCompanyLibrary.class;.


which produced the following javac compiler error message:



MyApplication.java:33: cannot find symbol
symbol: class Library
location: class MyApplication
Library theLibrary = new Library();


So I changed my classpath to be:



set CLASSPATH=C:javaproject;.


which produced the exact same error message.



How do I set my Windows classpath to include the Library.class file? Should it point at the folder contains the orgmyCompany subfolders? Or point directly to the class file? Or to the folder containing the class file (even though the class is in a package and belongs in a subfolder)?



I do an echo %CLASSPATH% after my set command and the classpath is being set correctly. I also made an ant build.xml file and encountered the same problem. In fact, ant -verbose confirmed that my classpath is being set correctly.










share|improve this question























  • Did you import the Library class? cannot find symbol afaik has nothing to do with classpath issues.

    – musiKk
    Sep 10 '10 at 14:26











  • Thanks to all who responded. The problem was twofold: missing import statement in the java code and pointing the classpath at the .class file instead of the folder containing the org/myCompany/Library.class file.

    – David
    Sep 10 '10 at 14:41
















0















I have two classes:




MyApplication
Library




The Library has already been compiled into Library.class and the source code is no longer available. I am now trying to compile MyApplication from source. MyApplication depends on the Library. The Library has a package name of org.myCompany. I tried setting my classpath to the following:



set CLASSPATH=C:javaprojectorgmyCompanyLibrary.class;.


which produced the following javac compiler error message:



MyApplication.java:33: cannot find symbol
symbol: class Library
location: class MyApplication
Library theLibrary = new Library();


So I changed my classpath to be:



set CLASSPATH=C:javaproject;.


which produced the exact same error message.



How do I set my Windows classpath to include the Library.class file? Should it point at the folder contains the orgmyCompany subfolders? Or point directly to the class file? Or to the folder containing the class file (even though the class is in a package and belongs in a subfolder)?



I do an echo %CLASSPATH% after my set command and the classpath is being set correctly. I also made an ant build.xml file and encountered the same problem. In fact, ant -verbose confirmed that my classpath is being set correctly.










share|improve this question























  • Did you import the Library class? cannot find symbol afaik has nothing to do with classpath issues.

    – musiKk
    Sep 10 '10 at 14:26











  • Thanks to all who responded. The problem was twofold: missing import statement in the java code and pointing the classpath at the .class file instead of the folder containing the org/myCompany/Library.class file.

    – David
    Sep 10 '10 at 14:41














0












0








0








I have two classes:




MyApplication
Library




The Library has already been compiled into Library.class and the source code is no longer available. I am now trying to compile MyApplication from source. MyApplication depends on the Library. The Library has a package name of org.myCompany. I tried setting my classpath to the following:



set CLASSPATH=C:javaprojectorgmyCompanyLibrary.class;.


which produced the following javac compiler error message:



MyApplication.java:33: cannot find symbol
symbol: class Library
location: class MyApplication
Library theLibrary = new Library();


So I changed my classpath to be:



set CLASSPATH=C:javaproject;.


which produced the exact same error message.



How do I set my Windows classpath to include the Library.class file? Should it point at the folder contains the orgmyCompany subfolders? Or point directly to the class file? Or to the folder containing the class file (even though the class is in a package and belongs in a subfolder)?



I do an echo %CLASSPATH% after my set command and the classpath is being set correctly. I also made an ant build.xml file and encountered the same problem. In fact, ant -verbose confirmed that my classpath is being set correctly.










share|improve this question














I have two classes:




MyApplication
Library




The Library has already been compiled into Library.class and the source code is no longer available. I am now trying to compile MyApplication from source. MyApplication depends on the Library. The Library has a package name of org.myCompany. I tried setting my classpath to the following:



set CLASSPATH=C:javaprojectorgmyCompanyLibrary.class;.


which produced the following javac compiler error message:



MyApplication.java:33: cannot find symbol
symbol: class Library
location: class MyApplication
Library theLibrary = new Library();


So I changed my classpath to be:



set CLASSPATH=C:javaproject;.


which produced the exact same error message.



How do I set my Windows classpath to include the Library.class file? Should it point at the folder contains the orgmyCompany subfolders? Or point directly to the class file? Or to the folder containing the class file (even though the class is in a package and belongs in a subfolder)?



I do an echo %CLASSPATH% after my set command and the classpath is being set correctly. I also made an ant build.xml file and encountered the same problem. In fact, ant -verbose confirmed that my classpath is being set correctly.







java windows classpath






share|improve this question













share|improve this question











share|improve this question




share|improve this question










asked Sep 10 '10 at 14:12









DavidDavid

12225




12225













  • Did you import the Library class? cannot find symbol afaik has nothing to do with classpath issues.

    – musiKk
    Sep 10 '10 at 14:26











  • Thanks to all who responded. The problem was twofold: missing import statement in the java code and pointing the classpath at the .class file instead of the folder containing the org/myCompany/Library.class file.

    – David
    Sep 10 '10 at 14:41



















  • Did you import the Library class? cannot find symbol afaik has nothing to do with classpath issues.

    – musiKk
    Sep 10 '10 at 14:26











  • Thanks to all who responded. The problem was twofold: missing import statement in the java code and pointing the classpath at the .class file instead of the folder containing the org/myCompany/Library.class file.

    – David
    Sep 10 '10 at 14:41

















Did you import the Library class? cannot find symbol afaik has nothing to do with classpath issues.

– musiKk
Sep 10 '10 at 14:26





Did you import the Library class? cannot find symbol afaik has nothing to do with classpath issues.

– musiKk
Sep 10 '10 at 14:26













Thanks to all who responded. The problem was twofold: missing import statement in the java code and pointing the classpath at the .class file instead of the folder containing the org/myCompany/Library.class file.

– David
Sep 10 '10 at 14:41





Thanks to all who responded. The problem was twofold: missing import statement in the java code and pointing the classpath at the .class file instead of the folder containing the org/myCompany/Library.class file.

– David
Sep 10 '10 at 14:41












6 Answers
6






active

oldest

votes


















0














You cannot add a single class in your classpath like this. You have 3 solutions:




  • add this class in the path of your other compiled classes (respecting the package naming of your directories)

  • add the root directory of this class in your classpath (in your case "C:javaproject")

  • add this single class into a jar and add this jar to the classpath


For your problem, the thrird choice is cleaner: external dependencies normally are packaged into jar files.






share|improve this answer































    2














    First of all: the use of the CLASSPATH environment variable is very strongly discouraged. The best thing is for you to forget that it exists. Use the -cp command line switch or similar methods to set the classpath.



    Second, the classpath entries each represent a place where the classloader will start looking for .class according to the package hierarchy, i.e. it will look for the class org.myCompany.Library in a subfolder org/myCompany in any of the classpath entries.



    Therefore, if




    • you add a classpath entry C:javaproject

    • and there is a class file C:javaprojectorgmyCompanyLibrary.class

    • which is actually part of a package org.myCompany (capitalization matters here!)

    • and your MyApplication class has an import org.myCompany.Library;


    Then it really should work.






    share|improve this answer































      0














      If your .class file isn't in jar file, point your classpath to the parent dir where package of class resides, e.g., for class org.myCompany.Library, point your CP to directory containing org/myCompany.

      If your .class file included into some jar file, add full path to that jar to your classpath.






      share|improve this answer
























      • actually I don't have any JARs for either of the two classes

        – David
        Sep 10 '10 at 14:20













      • @David: You can add .class file to jar. Main advantage that if you have lot of classes packed into jar, you will need add only that jar file to classpath.

        – Victor Sorokin
        Sep 10 '10 at 14:24



















      0














      If you compiled the class files to a different directory, the classpath needs to point to where the .class file is.



      set CLASSPATH=C:javaproject;


      is correct assuming that that the class file is in the same directory as the .java source file.






      share|improve this answer































        0














        Is there a problem locating the Library to the same root project where is your MyApplication class



        Example, if:



        c:/project/org/company/MyApplication.class


        Can you locate the Library class into:



        C:/project/org/myCompany/Library.class


        please notice, that the folders org/myCompany and org/company are located under the same folder c:/project/.



        Please notices that this solution works for you if the Library Class is only used by your application.



        Edited
        Windows command prompt is tedious, after setting the classpath please close and re-open the Command Prompt, so it can see the new classpath's value.






        share|improve this answer

































          0














          For the classpath to work, you need to have a folder structure which matches the package hierarchy. So if your class is org.myCompany.Library, you must create a nested folder structure of C:javaprojectorgmyCompany and place your Library class file in the myCompany folder. Then set the class path to C:javaproject






          share|improve this answer

























            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            autoActivateHeartbeat: false,
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














            draft saved

            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f3685260%2fjava-classpath-issue%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            6 Answers
            6






            active

            oldest

            votes








            6 Answers
            6






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes









            0














            You cannot add a single class in your classpath like this. You have 3 solutions:




            • add this class in the path of your other compiled classes (respecting the package naming of your directories)

            • add the root directory of this class in your classpath (in your case "C:javaproject")

            • add this single class into a jar and add this jar to the classpath


            For your problem, the thrird choice is cleaner: external dependencies normally are packaged into jar files.






            share|improve this answer




























              0














              You cannot add a single class in your classpath like this. You have 3 solutions:




              • add this class in the path of your other compiled classes (respecting the package naming of your directories)

              • add the root directory of this class in your classpath (in your case "C:javaproject")

              • add this single class into a jar and add this jar to the classpath


              For your problem, the thrird choice is cleaner: external dependencies normally are packaged into jar files.






              share|improve this answer


























                0












                0








                0







                You cannot add a single class in your classpath like this. You have 3 solutions:




                • add this class in the path of your other compiled classes (respecting the package naming of your directories)

                • add the root directory of this class in your classpath (in your case "C:javaproject")

                • add this single class into a jar and add this jar to the classpath


                For your problem, the thrird choice is cleaner: external dependencies normally are packaged into jar files.






                share|improve this answer













                You cannot add a single class in your classpath like this. You have 3 solutions:




                • add this class in the path of your other compiled classes (respecting the package naming of your directories)

                • add the root directory of this class in your classpath (in your case "C:javaproject")

                • add this single class into a jar and add this jar to the classpath


                For your problem, the thrird choice is cleaner: external dependencies normally are packaged into jar files.







                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Sep 10 '10 at 14:16









                Benoit CourtineBenoit Courtine

                5,9092233




                5,9092233

























                    2














                    First of all: the use of the CLASSPATH environment variable is very strongly discouraged. The best thing is for you to forget that it exists. Use the -cp command line switch or similar methods to set the classpath.



                    Second, the classpath entries each represent a place where the classloader will start looking for .class according to the package hierarchy, i.e. it will look for the class org.myCompany.Library in a subfolder org/myCompany in any of the classpath entries.



                    Therefore, if




                    • you add a classpath entry C:javaproject

                    • and there is a class file C:javaprojectorgmyCompanyLibrary.class

                    • which is actually part of a package org.myCompany (capitalization matters here!)

                    • and your MyApplication class has an import org.myCompany.Library;


                    Then it really should work.






                    share|improve this answer




























                      2














                      First of all: the use of the CLASSPATH environment variable is very strongly discouraged. The best thing is for you to forget that it exists. Use the -cp command line switch or similar methods to set the classpath.



                      Second, the classpath entries each represent a place where the classloader will start looking for .class according to the package hierarchy, i.e. it will look for the class org.myCompany.Library in a subfolder org/myCompany in any of the classpath entries.



                      Therefore, if




                      • you add a classpath entry C:javaproject

                      • and there is a class file C:javaprojectorgmyCompanyLibrary.class

                      • which is actually part of a package org.myCompany (capitalization matters here!)

                      • and your MyApplication class has an import org.myCompany.Library;


                      Then it really should work.






                      share|improve this answer


























                        2












                        2








                        2







                        First of all: the use of the CLASSPATH environment variable is very strongly discouraged. The best thing is for you to forget that it exists. Use the -cp command line switch or similar methods to set the classpath.



                        Second, the classpath entries each represent a place where the classloader will start looking for .class according to the package hierarchy, i.e. it will look for the class org.myCompany.Library in a subfolder org/myCompany in any of the classpath entries.



                        Therefore, if




                        • you add a classpath entry C:javaproject

                        • and there is a class file C:javaprojectorgmyCompanyLibrary.class

                        • which is actually part of a package org.myCompany (capitalization matters here!)

                        • and your MyApplication class has an import org.myCompany.Library;


                        Then it really should work.






                        share|improve this answer













                        First of all: the use of the CLASSPATH environment variable is very strongly discouraged. The best thing is for you to forget that it exists. Use the -cp command line switch or similar methods to set the classpath.



                        Second, the classpath entries each represent a place where the classloader will start looking for .class according to the package hierarchy, i.e. it will look for the class org.myCompany.Library in a subfolder org/myCompany in any of the classpath entries.



                        Therefore, if




                        • you add a classpath entry C:javaproject

                        • and there is a class file C:javaprojectorgmyCompanyLibrary.class

                        • which is actually part of a package org.myCompany (capitalization matters here!)

                        • and your MyApplication class has an import org.myCompany.Library;


                        Then it really should work.







                        share|improve this answer












                        share|improve this answer



                        share|improve this answer










                        answered Sep 10 '10 at 14:27









                        Michael BorgwardtMichael Borgwardt

                        296k64428664




                        296k64428664























                            0














                            If your .class file isn't in jar file, point your classpath to the parent dir where package of class resides, e.g., for class org.myCompany.Library, point your CP to directory containing org/myCompany.

                            If your .class file included into some jar file, add full path to that jar to your classpath.






                            share|improve this answer
























                            • actually I don't have any JARs for either of the two classes

                              – David
                              Sep 10 '10 at 14:20













                            • @David: You can add .class file to jar. Main advantage that if you have lot of classes packed into jar, you will need add only that jar file to classpath.

                              – Victor Sorokin
                              Sep 10 '10 at 14:24
















                            0














                            If your .class file isn't in jar file, point your classpath to the parent dir where package of class resides, e.g., for class org.myCompany.Library, point your CP to directory containing org/myCompany.

                            If your .class file included into some jar file, add full path to that jar to your classpath.






                            share|improve this answer
























                            • actually I don't have any JARs for either of the two classes

                              – David
                              Sep 10 '10 at 14:20













                            • @David: You can add .class file to jar. Main advantage that if you have lot of classes packed into jar, you will need add only that jar file to classpath.

                              – Victor Sorokin
                              Sep 10 '10 at 14:24














                            0












                            0








                            0







                            If your .class file isn't in jar file, point your classpath to the parent dir where package of class resides, e.g., for class org.myCompany.Library, point your CP to directory containing org/myCompany.

                            If your .class file included into some jar file, add full path to that jar to your classpath.






                            share|improve this answer













                            If your .class file isn't in jar file, point your classpath to the parent dir where package of class resides, e.g., for class org.myCompany.Library, point your CP to directory containing org/myCompany.

                            If your .class file included into some jar file, add full path to that jar to your classpath.







                            share|improve this answer












                            share|improve this answer



                            share|improve this answer










                            answered Sep 10 '10 at 14:16









                            Victor SorokinVictor Sorokin

                            10.3k12744




                            10.3k12744













                            • actually I don't have any JARs for either of the two classes

                              – David
                              Sep 10 '10 at 14:20













                            • @David: You can add .class file to jar. Main advantage that if you have lot of classes packed into jar, you will need add only that jar file to classpath.

                              – Victor Sorokin
                              Sep 10 '10 at 14:24



















                            • actually I don't have any JARs for either of the two classes

                              – David
                              Sep 10 '10 at 14:20













                            • @David: You can add .class file to jar. Main advantage that if you have lot of classes packed into jar, you will need add only that jar file to classpath.

                              – Victor Sorokin
                              Sep 10 '10 at 14:24

















                            actually I don't have any JARs for either of the two classes

                            – David
                            Sep 10 '10 at 14:20







                            actually I don't have any JARs for either of the two classes

                            – David
                            Sep 10 '10 at 14:20















                            @David: You can add .class file to jar. Main advantage that if you have lot of classes packed into jar, you will need add only that jar file to classpath.

                            – Victor Sorokin
                            Sep 10 '10 at 14:24





                            @David: You can add .class file to jar. Main advantage that if you have lot of classes packed into jar, you will need add only that jar file to classpath.

                            – Victor Sorokin
                            Sep 10 '10 at 14:24











                            0














                            If you compiled the class files to a different directory, the classpath needs to point to where the .class file is.



                            set CLASSPATH=C:javaproject;


                            is correct assuming that that the class file is in the same directory as the .java source file.






                            share|improve this answer




























                              0














                              If you compiled the class files to a different directory, the classpath needs to point to where the .class file is.



                              set CLASSPATH=C:javaproject;


                              is correct assuming that that the class file is in the same directory as the .java source file.






                              share|improve this answer


























                                0












                                0








                                0







                                If you compiled the class files to a different directory, the classpath needs to point to where the .class file is.



                                set CLASSPATH=C:javaproject;


                                is correct assuming that that the class file is in the same directory as the .java source file.






                                share|improve this answer













                                If you compiled the class files to a different directory, the classpath needs to point to where the .class file is.



                                set CLASSPATH=C:javaproject;


                                is correct assuming that that the class file is in the same directory as the .java source file.







                                share|improve this answer












                                share|improve this answer



                                share|improve this answer










                                answered Sep 10 '10 at 14:21









                                Kelly S. FrenchKelly S. French

                                10.6k74887




                                10.6k74887























                                    0














                                    Is there a problem locating the Library to the same root project where is your MyApplication class



                                    Example, if:



                                    c:/project/org/company/MyApplication.class


                                    Can you locate the Library class into:



                                    C:/project/org/myCompany/Library.class


                                    please notice, that the folders org/myCompany and org/company are located under the same folder c:/project/.



                                    Please notices that this solution works for you if the Library Class is only used by your application.



                                    Edited
                                    Windows command prompt is tedious, after setting the classpath please close and re-open the Command Prompt, so it can see the new classpath's value.






                                    share|improve this answer






























                                      0














                                      Is there a problem locating the Library to the same root project where is your MyApplication class



                                      Example, if:



                                      c:/project/org/company/MyApplication.class


                                      Can you locate the Library class into:



                                      C:/project/org/myCompany/Library.class


                                      please notice, that the folders org/myCompany and org/company are located under the same folder c:/project/.



                                      Please notices that this solution works for you if the Library Class is only used by your application.



                                      Edited
                                      Windows command prompt is tedious, after setting the classpath please close and re-open the Command Prompt, so it can see the new classpath's value.






                                      share|improve this answer




























                                        0












                                        0








                                        0







                                        Is there a problem locating the Library to the same root project where is your MyApplication class



                                        Example, if:



                                        c:/project/org/company/MyApplication.class


                                        Can you locate the Library class into:



                                        C:/project/org/myCompany/Library.class


                                        please notice, that the folders org/myCompany and org/company are located under the same folder c:/project/.



                                        Please notices that this solution works for you if the Library Class is only used by your application.



                                        Edited
                                        Windows command prompt is tedious, after setting the classpath please close and re-open the Command Prompt, so it can see the new classpath's value.






                                        share|improve this answer















                                        Is there a problem locating the Library to the same root project where is your MyApplication class



                                        Example, if:



                                        c:/project/org/company/MyApplication.class


                                        Can you locate the Library class into:



                                        C:/project/org/myCompany/Library.class


                                        please notice, that the folders org/myCompany and org/company are located under the same folder c:/project/.



                                        Please notices that this solution works for you if the Library Class is only used by your application.



                                        Edited
                                        Windows command prompt is tedious, after setting the classpath please close and re-open the Command Prompt, so it can see the new classpath's value.







                                        share|improve this answer














                                        share|improve this answer



                                        share|improve this answer








                                        edited Sep 10 '10 at 14:37

























                                        answered Sep 10 '10 at 14:24









                                        Garis M SueroGaris M Suero

                                        6,24773663




                                        6,24773663























                                            0














                                            For the classpath to work, you need to have a folder structure which matches the package hierarchy. So if your class is org.myCompany.Library, you must create a nested folder structure of C:javaprojectorgmyCompany and place your Library class file in the myCompany folder. Then set the class path to C:javaproject






                                            share|improve this answer






























                                              0














                                              For the classpath to work, you need to have a folder structure which matches the package hierarchy. So if your class is org.myCompany.Library, you must create a nested folder structure of C:javaprojectorgmyCompany and place your Library class file in the myCompany folder. Then set the class path to C:javaproject






                                              share|improve this answer




























                                                0












                                                0








                                                0







                                                For the classpath to work, you need to have a folder structure which matches the package hierarchy. So if your class is org.myCompany.Library, you must create a nested folder structure of C:javaprojectorgmyCompany and place your Library class file in the myCompany folder. Then set the class path to C:javaproject






                                                share|improve this answer















                                                For the classpath to work, you need to have a folder structure which matches the package hierarchy. So if your class is org.myCompany.Library, you must create a nested folder structure of C:javaprojectorgmyCompany and place your Library class file in the myCompany folder. Then set the class path to C:javaproject







                                                share|improve this answer














                                                share|improve this answer



                                                share|improve this answer








                                                edited Sep 10 '10 at 14:38

























                                                answered Sep 10 '10 at 14:27









                                                StormshadowStormshadow

                                                2,42482631




                                                2,42482631






























                                                    draft saved

                                                    draft discarded




















































                                                    Thanks for contributing an answer to Stack Overflow!


                                                    • Please be sure to answer the question. Provide details and share your research!

                                                    But avoid



                                                    • Asking for help, clarification, or responding to other answers.

                                                    • Making statements based on opinion; back them up with references or personal experience.


                                                    To learn more, see our tips on writing great answers.




                                                    draft saved


                                                    draft discarded














                                                    StackExchange.ready(
                                                    function () {
                                                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f3685260%2fjava-classpath-issue%23new-answer', 'question_page');
                                                    }
                                                    );

                                                    Post as a guest















                                                    Required, but never shown





















































                                                    Required, but never shown














                                                    Required, but never shown












                                                    Required, but never shown







                                                    Required, but never shown

































                                                    Required, but never shown














                                                    Required, but never shown












                                                    Required, but never shown







                                                    Required, but never shown







                                                    Popular posts from this blog

                                                    Futebolista

                                                    Lallio

                                                    Jornalista