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
Post a Comment