Let's say I have JProjectOne
and JProjectTwo
. Will the public class I have in JProjectOne
be visible in JProjectTwo
or do I have to do some tweaking for it to be visible?

- 1,048,767
- 296
- 4,058
- 3,343

- 13
- 2
-
1"Projects" are not a concept that the Java Language knows about - that's just your IDE doing things its way. Before Java9, public classes were visible to any other class. Since Java9, with modules, there are some changes to that. – Erwin Bolwidt May 28 '18 at 05:53
-
As long, as JProjectTwo doesn't have JProjectOne in its classpath, nothing from the latter is accessible to the former – Lino May 28 '18 at 05:53
3 Answers
private hides from other classes within the package. public exposes to classes outside the package. A protected member is accessible within all classes in the same package and within sub classes in other packages. May be JAVA Docs is helpful.

- 39
- 1
- 5
This is the place where JAR
s come handy, make a jar file of the public class you want in other project. Then add it to present project.
- Creating a JAR - How to make an executable jar file?
- How to add external JARs to a project - How to import a jar in Eclipse

- 2,167
- 4
- 27
- 52
As Arun suggested try with jar, but if You are using Maven, that is quiet easy to do that, here is an example:
Here is how You could "install", send you jar file to .m2 (maven container),
mvn install:install-file
-Dfile=<path-to-file>
-DgroupId=<group-id>
-DartifactId=<artifact-id>
-Dversion=<version>
-Dpackaging=<packaging>
-DgeneratePom=true
Where: <path-to-file> the path to the file to load
<group-id> the group that the file should be registered under
<artifact-id> the artifact name for the file
<version> the version of the file
<packaging> the packaging of the file e.g. jar
so this is how would this look like (example):
mvn install:install-file -Dfile=c:\test_0.0.1.jar -DgroupId= com.test
-DartifactId=project -Dversion=0.0.1 -Dpackaging=jar
...and simply calling in other project like this (also from maven):
<dependency>
<groupId>com.test</groupId>
<artifactId>project</artifactId>
<version>1.0</version>
<scope>system</scope>
<systemPath>${project.basedir}/src/main/resources/yourJar.jar</systemPath>
</dependency>
and just do always pom.xml import on file, to update it and You're good to go. This is just local jar importing.
Hope this helps.

- 1,473
- 6
- 21