import problem

Very easy question. Can someone tell me how to import a class which resides in a folder outside current folder?

i have a Abc.java in abc folder, and i want to import cde.java which resides in cde folder, and cde folder and abc folder both resides in def folder.

jtcyAsked:
Who is Participating?
 
Mayank SConnect With a Mentor Associate Director - Product EngineeringCommented:
In the command-prompt:

set classpath=%classpath%C:\DEF\CDE;.

(assuming that the cde folder is in c:\def - you need to give the full-path for cde).

http://www.mindprod.com/jgloss/classpath.html
0
 
Mayank SAssociate Director - Product EngineeringCommented:
Add the folder to the class-path.
0
 
Mayank SAssociate Director - Product EngineeringCommented:
Add the folder cde to the class-path, I mean.
0
Cloud Class® Course: SQL Server Core 2016

This course will introduce you to SQL Server Core 2016, as well as teach you about SSMS, data tools, installation, server configuration, using Management Studio, and writing and executing queries.

 
jtcyAuthor Commented:
how?
import cde/cde; ?
0
 
Mayank SConnect With a Mentor Associate Director - Product EngineeringCommented:
>> import cde/cde; ?

Do that only if cde.java is in a package. Have you specified any package for it? Like:

package cde ;

class cde
{
}

- or does it not have a package?
0
 
jtcyAuthor Commented:
my directory:

abc folder - contains abc.java labelled package abc
cde folder - contains cde.java labelled package cde

and i wan cde to import abc folder.
do i do like..import abc/abc.java? would it work? cuz they are two different folders

0
 
Mayank SAssociate Director - Product EngineeringCommented:
>> package cde ;

If it is in a package, then add only its parent directory to the class-path.
0
 
Mayank SConnect With a Mentor Associate Director - Product EngineeringCommented:
- abc folder should contain abc.class

- cde folder should contain cde.class

Use: import abc ; for importing it

Use: import def ; for importing it

Set the classpath till the parent directory of these two.

set classpath=%classpath%;C:\DEF;.

- if C:\DEF contains these two folders.
0
 
Mayank SAssociate Director - Product EngineeringCommented:
Can we have it closed now?
0
 
objectsCommented:
> do i do like..import abc/abc.java?

use:

import abc.abc;

0
 
Mayank SAssociate Director - Product EngineeringCommented:
>> Use: import abc ; for importing it

Sorry, that should have been:

import abc.* ; // for all classes

or import abc.abc ; // only for this class.
0
 
raghav9992003Commented:
use:package cde;
in your abc.javafile

so that u can access that java file

try it
0
 
raghav9992003Commented:
package cde;
 importing packages. if any other things are needed.
public class abc
{
//main method and other code
in this code u can create instance for cde.java file and use it
}
0
 
gnoonCommented:
>abc folder - contains abc.java labelled package abc
>cde folder - contains cde.java labelled package cde

abc
| - abc.java

after you compiled it (javac -d . abc.java), result will be

abc
| - abc.java
| - abc
     | - abc.class

and also for cde.java

cde
| - cde.java
| - cde
     | - cde.class

To import abc class into cde.java, you need to compile abc.java first (javac -d . abc.java)
, then add <abs path>\abc (that contains abc.java) directory into your classpath (as mayankeagle commented)
, and then compile cde.java.
0
 
Mayank SAssociate Director - Product EngineeringCommented:
>> use:package cde;
>> in your abc.javafile

No way. He wants it to be in another package abc.

jtcy,

You asked the same question at:

http://www.experts-exchange.com/Programming/Programming_Languages/Java/Q_20941000.html

- please don't ask the same question twice - that too, with the same subject! Since that one is closed, I'm expecting this one to be closed too. Or if you have any more doubts, then please ask them on THIS page since this is still open, and not on that page.
0
 
Mayank SAssociate Director - Product EngineeringCommented:
I hope you have given notice to my previous comment:

>> - abc folder should contain abc.class
>> - cde folder should contain cde.class

- Mind it. Its .CLASS file and not .JAVA file

>> Set the classpath till the parent directory of these two

- keep in mind like gnoon suggested that the parent directory need not be the same. In that case, you have to add both the parent directories to the class-path
0
 
jtcyAuthor Commented:
Sorry, i didnt want to open two questions. I accidentally clicked twice of it. tats why. um~~~ regarding to this problem i donno`~ basically, i just want to go for a coke..but cant. lol

um.....Okay, as what i have said above.........I have:

folder ast - containing ast classes files, each are packaged as ast;
folder rclast - containing rclast classes files, each packaged rclast;

both folders exists in myDirectory.

NOW, the thing is I want to use ast classes stuff in rclast classes, but i was told to do this without changing anything of classpath.

0
 
Mayank SAssociate Director - Product EngineeringCommented:
Why would you want to do that without class-path? Did your teacher not tell you what classpath is?

It is very vital to Java: http://www.mindprod.com/jgloss/classpath.html

What you can try is: put your ast and rclast folders (containing the class-files) in the jdk\bin folder. See if that helps.
0
 
Mayank SAssociate Director - Product EngineeringCommented:
>> I accidentally clicked twice of it.

Hereafter, you can take care of it: you can click on the Delete link which will be available above the Comment box if no comments have been posted to your question as yet.
0
 
StillUnAwareConnect With a Mentor Commented:
One more thought:

if you want to use your own classes in different directories without setting the CLASSPATH, then you cal put all your folders, classes, packages, etc. into folder %JRE_INSTALL%\CLASSES\  where %JRE_INSTALL%\ is the directory where java runtime installation is.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.