java - How to solve the problm of a class overshadowed by a jar file? -


i'm using netbeans develop projects, found class in jar file overshadows file same name, how solve problem ?

i have project called db_tools_panel, has following structure :

src/ : db_tools_panel.java        utility/ : tools_lib.java 

so inside src dir there file : db_tools_panel.java, , in src dir there dir called utility, inside utility there file called tools_lib.java.

i packaged project jar file : db_tools_panel.jar

then created 2nd project fit, has following structure :

src/ : fit.java        utility/ : tools_lib.java lib/ : db_tools_panel.jar 

it uses db_tools_panel.jar, db_tools_panel.jar in fit's lib dir, when change tools_lib.java in fit/src/utility, , run it, nothing happen, if it's never changed, know why, because jvm runs tools_lib.java package db_tools_panel.jar, won't see tools_lib.java in fit/src/utility, in other words, after included db_tools_panel.jar fit project, tools_lib.java in db_tools_panel.jar overshadow tools_lib.java in fit/src/utility.

the tools_lib.java in both places same file, 1 in fit/src/utility might more advanced, there times when test db_tools_panel , make sure works fine , package jar file, , use in other projects, , utility/tools_lib.java used in later projects , needs improvements, don't want go db_tools_panel.jar , update tools_lib.java in it.

so questions :

[1] in case possible have 2 different tools_lib.java files in fit project, 1 in fit/src/utility/, other in fit/lib/db_tools_panel.jar , not cause conflict, mean : when fit calls tools_lib.java 1 in it's src/utility/ used , when method in fit calls db_tools_panel, db_tools_panel's tools_lib.java used inside db_tools_panel's methods.

[2] why tools_lib.java in db_tools_panel.jar overshadowing tools_lib.java in fit/src/utility ?

[3] how have 2 tools_lib.java's different , still able change 1 in fit/src/utility , use in fit project if 1 in db_tools_panel.jar doesn't exist ?

you should using packages allow easier identification of projects / files. additionally use more descriptive names instead of repeating names if possible.

for class names shouldn't using _. goes against code conventions:

with that, make projects this:

src/ : com/frank/db/tools/dbtoolspanel.java        com/frank/db/tools/utility/ : toolslib.java 

and this:

src/ : com/frank/fit/fit.java        com/frank/fit/utility/ : toolslib.java lib/ : dbtoolspanel.jar 

that way in dbtoolspanel.java import com.frank.db.tools.utility.toolslib , fit.java have com.frank.fit.utility.toolslib.


Comments

Popular posts from this blog

c# - How Configure Devart dotConnect for SQLite Code First? -

java - Copying object fields -

c++ - Clear the memory after returning a vector in a function -