Class Loading.Basic Question
Hi,
I wrote a small piece of code and it is running fine.
Enumeration enP = lP.getNameList();
int i=0;
while (enP.hasMoreElements()) {
Object nE = enP.nextElement();
String nV = nE.toString();
System.out.println(nV);
I am in doubt,because as far as I know Enumeration is an interface as sucj an interface it is not supposed to have code. So, my question is which class is in fact been used by the program?
All you can know it that whatever class it is, it
implements the Enumeration interface. Well that's not really true. If you're really dying to
now what type it truly is, just print out its
class:Enumeration enP = lP.getNameList();
System.out.println( enP.getClass() );
That code shows what the class is on a specific version of a specific vendor's library. If you try to rely on that information, don't be surprised if it's a different class in another vendor's library or even the next version of the same vendor's library.
The truth is you really don't know what class of object a reference will point to when you write the code, at least if the reference type is non-final.
Similar Messages
-
Hi guys,
since I'm learning and testing the SAP Netweaver BI 7.0 I'm loading with full upload to the targets (DSO, InfoCube).
Now I have read about loading with delta load.
As I have undetstood the delta load enables me to load only new data to the targets.
Now I'm wondering that in some forum threads people are writing that more Infopackages are neccessary if you want to load with delta.
Is it correct that more Infopackages are neccessary for delta load and why?
Is a How-to within SDN available? I couldn't find anything.
Thanks!Hi,
To do the Delta one must load the INIT.
You can do inti in two ways
1. INIT with Datatransfer
2. INIT Without Datatransfer
The following are the general steps to load Delta
1. One IP for Init without datatransfer
2. One IP for Full Load
3. Another IP for Delta Load
You can also do
1. Create an Infopackage to do the INIT with Datatransfer(This is equivalent to INIT without Datatransfer+FULL load)
2. create another infopackage & make it delta in the update mode
Hope it is clear & helpful
Regards,
Pavan -
Object class deployment - Basic form question
OK, I subclass calendar object from Oracle provided standard
object class. What do I need to deploy to use this form now
apart from calendar.pll and my fmx. What about the object class
from which I sub-class. Do I need to compile and deploy that
also? How will form resolve this on run time the parent object
class as I really did not copy, just sub class and we do not
deploy original class? Basic form question. Thanks.You can set the "help" property on the field (which gives you the little "information" icon link beside the field).
You could also try adding another field of another class above or below:
<Display class='InlineAlert'/>
<Display class='ErrorMessage'/>
<Display class='HtmlPage'/>
..etc
-Rob -
Hi,
I got NoClassDefFoundError and when I use ClasspathDebug jsp it shows that the class is loaded by "java.net.URLClassLoader". I put the jar file containing the class in <domain>/lib directory. According to docs the jar under <domain>/lib should be loaded by system class loader. what is "java.net.URLClassLoader"? why isn't system loader loading my class? I am using wls91. Thanks
weblogic.servlet.jsp.TagFileClassLoader
weblogic.utils.classloaders.ChangeAwareClassLoader
weblogic.utils.classloaders.GenericClassLoader
weblogic.utils.classloaders.GenericClassLoader
java.net.URLClassLoader
sun.misc.Launcher$AppClassLoader
sun.misc.Launcher$ExtClassLoader
Bootstrap classloaderI'm not sure from reply 2 whether you figured out what's going on or not. It sounds like you did, but just in case...
The null/primordial/bootstrap class loader loads classes in the core API--stuff it finds in the ext dir(s?) (e.g. rt.jar)--Object, String, java.util.*, java.sql.*, etc. It has no parent. It is the root of the normal delegating classloader tree.
The system classloader is the one that uses classpath to load your classes and 3rd party classes. Everything not in the core API, as long as neither you nor those other classes explicitly specify a different classloader.
The way the normal delegation mechanism works is that a request to load a class is first passed to the loader that loaded the current class. This loader first gives its parent a chance to load it, and so on up the tree to the primordial loader.
Once it hits the root (null/primordial/bootstrap), that classloader tries to load it. If it can't (and the primordial loader can't, in fact, load your class, since it's not in the ext dir), then it hands it back to its child. This continues down the line, with the parent getting first shot at loading, then the child trying if the parent fails.
The primordial loader (which loaded the JdbcOdbcDriver) can't load your class. It hands it back to its child--the system classloader--which can and does load it, using classpath.
I hope that answers any lingering questions, if there were in fact such questions. -
Loading classes for basic information on them.
Hey guys,
I'm creating a custom deployment application. Basically the developer will select all of the .class files he wants to roll out to production. They are put into a JList and then I go through them and place them in their appropriate packages to be rolled out at a future date.
The problem arises when there is a .class file that is not in the right directory structure as the package it's supposed to be in.
Translation:
Example:
the package the class is in com.test.MyPackage
But the class siting on root of C:\
What I'm hoping to accomplish is to load the class briefly enough into the JVM to get the package name of it and place it in the correct deployment directory. Remember i'm only dealing with .class files.
I have thought of decompiling and searching for the package name in a regex but then I saw URLClassLoader and ClassLoader but have had a crazy time trying to get the class loaded at all.
In Short: I won't know the package name of the file. I don't care where it's eing loaded from and I don't know where it's going to. I'm hoping I can load the class into the JVM, get the package name, and move the class to the correct package.
Thanks for your help!
Any thoughts on what I can do, even if it's totally different (programs that will do it for me, the RIGHT way I should be doing it, ETC), would be greatly appreciated.
-RyanIf you are completely sure you can trust the classes not to do anything on load (and many do), you can load the class file into a byte array and pass that to a classloader to load the class, without knowing the package. But it is far safer to use a bytecode library, eg BCELimport org.apache.bcel.*;
import org.apache.bcel.classfile.*;
public class WhichPackage {
public static void main (String[] args) {
try {
System.out.println(new ClassParser(args[0]).parse().getPackageName());
} catch (Exception ex) {
ex.printStackTrace(System.out);
}Pete -
NAM 3.2.1 Custom Authentication Class for BASIC not loaded
Hi!
Im trying to write a custom authentication class for
BASIC/PROTECTED_BASIC, so I started with the PasswordClass sample from
SDK novell-nacm3_2-devel-2012.08.10.tar.gz, stripped out the
STSAuthenticationClass and changed the type to
AuthnConstants.PROTECTED_PASSWORD --> and it works!
public String getType() {
return AuthnConstants.PROTECTED_PASSWORD;
Next I wanted to create a custom BASIC auth class by changing the type
to AuthnConstants.BASIC / AuthnConstants.PROTECTED_BASIC
public String getType() {
return AuthnConstants.PROTECTED_BASIC;
but now IDP complains about the unsupported type.
<amLogEntry> 2012-12-20T15:11:17Z WARNING NIDS Application:
AM#300105006: AMDEVICEID#FC77EC2A45509E7B: Failed to load
authentication class due to unsupported type: ITdBasicTestClass
</amLogEntry>
Im running NAM 3.2.1 single box appliance for development/testing.
There is an old thread here, that looks like the same issue:
http://tinyurl.com/c6eawj6
Any hits?
regards
Thomas
PS: What i really want to solve is strip out the Domain from the
username on basic authentication since most MS apps/clients provide the
username in format DOMAIN\USER...
reibenwein
reibenwein's Profile: https://forums.netiq.com/member.php?userid=1382
View this thread: https://forums.netiq.com/showthread.php?t=46430hmmm, well try writing the value out to stderr and see if you can at least make sure you are getting
a good read.
Like a System.out.println(AuthnConstants.PROTECTED_PASSWO RD);
I ran into some strange stuff where some constants had no values for no apparent reason when they
should.
I would also try supplying the actual value instead of the constant and see if it goes through that
way. ("ProtectedBasic")
On 1/10/2013 11:14 AM, reibenwein wrote:
>
> Hi!
>
>
> I copied com.novell.nam.authentication.PasswordClass to start with my
> test custom auth class. It includes a method getType() like this:
>
> /**
> * Get the authentication type this class implements
> *
> * @return returns the authentication type represented by this
> class
> */
> public String getType() {
> return AuthnConstants.PROTECTED_PASSWORD;
> }
>
>
> --> IDP loads my custom auth class, as long as a leave getType()
> returning AuthnConstants.PROTECTED_PASSWORD! But this is form base
> authentication. According to the API documentation (see page 17 in
> namc_enu.pfd within the sdk download), getType should
> returnAuthnConstants. PROTECTED_BASIC for secure Basic authentication
> (or AuthnConstants.BASIC for non SSL Basic auth). So i changed getType()
> like this:
>
>
> /**
> * Get the authentication type this class implements
> *
> * @return returns the authentication type represented by this class
> */
> public String getType() {
> return AuthnConstants.PROTECTED_BASIC;
> }
>
>
> --> and then IPD comes with the error "Failed to load authentication
> class due to unsupported type"...
>
>
> regards,
> Thomas
>
> -
Say, I hava a class A which has inner classes, are those inner classes loaded when I load class A into JVM? Thanks
Hmm ... depends on the way you use the inner classes.
For example if there's a way to gather instances of
"A.aa" by calling a (factory) method on class "A",
you'd only have to get an instance of "A" via the
URLClassLoader. The ClassLoader of "A" would do the
job of loading "A.aa" in this case. If you want to
instantiate inner classes directly through e.g. a
call to Class.newInstance(), you'd have to do as you
wrote. I guess.My situation is that there is one instance of each of those inner classes. And those instances are created when they are declared in "A" as member variables. -
Class Loader Hierarchy in Weblogic 7.0
I have read the BEA documentation on the class loader hierarchy in Weblogic Server,
and I have some questions regarding some behavior I am seeing.
I am running Weblogic Server 7.0.
I have an ear file that contains 3 web apps (wars) and several utility jars. The
web apps' manifests contain the Class-Path entry for the utility jars. My understanding
of this is that each web app SHOULD have its own class loader. Also, the utility
jars will be scoped in a separate class loader and WILL NOT have visibility to
the web app classes. The web app classes should have visibility to the utility
jars.
Is this correct????
I added a static segment of code in each web app and printed the class loader
for each servlet when it was loaded. I also printed the class loader from a class
that is DEFINITELY contained in one of the utility jars. Here is the result:
Utility Class ClassLoader: sun.misc.Launcher$AppClassLoader@b9d04 Utility Class
Parent ClassLoader: sun.misc.Launcher$ExtClassLoader@71732b
Servlet 1 ClassLoader: sun.misc.Launcher$AppClassLoader@b9d04 Servlet 1 Parent
ClassLoader: sun.misc.Launcher$ExtClassLoader@71732b
Servlet 2 ClassLoader: sun.misc.Launcher$AppClassLoader@b9d04 Servlet 2 Parent
ClassLoader: sun.misc.Launcher$ExtClassLoader@71732b
I'm a little confused.... I expected to see 3 different class loaders (i.e. one
for each class above). I believe the above printout says that all 3 classes are
being loaded by the SAME class loader instance (Launcher$AppClassLoader@b9d04).
Am I interpreting this correctly? If so, what's going on?I rechecked the classpath for the user that starts Weblogic, and in the classpath
I found the project "src" directory (must have missed it earlier). When we did
our build, the classes are placed in the src structure then copied to the build
area. That's the reason I was not seeing the appropriate class loader hierarchy.
Thanks for all of the comments.
"Sanjeev Chopra" <[email protected]> wrote:
>
"Mark Cotherman" <[email protected]> wrote in message
news:[email protected]...
Thanks for your comments again Mark. I'm just trying to get a goodhandle
on how
this is working.
I'll assume that somehow my web app classes are being loaded into theroot
classloader.
The next question is... why??Just to be sure - is there any way these classes are sneaking into the
system classpath ?
My ear file contains the following:
a.war
b.war
c.war
lib/util1.jar
lib/util2.jar
lib/util3.jar
lib/util4.jar
The manifest in all three wars reference all util jars. This ear deployssuccessfully
on Weblogic with no errors.
How could these separate servlets (one in each war) not have seperateclass loaders
seperate from the root where the utils should reside. I don't thinkthat
I have
any control over where Weblogic loads the war classes, or do I?
See comments below....
Mark Spotswood <[email protected]> wrote:
Mark Cotherman wrote:
Thanks for the follow-up.
I want to make sure I follow what you are saying. All classes in
the
manifest
Class-Path of WARs are exported to the parent classloader.That's right.
To me this is the correct behavior since the manifest Class-Path
is
meant to provide
a way to share common utility classes among several web apps. AllEJB jars and
manifest Class-Path entries should be loaded by the same class loader.Its a way to share class definitions, but not necessarilly class
instances. I don't think that a web application should be extending
the classpath of its parent's classloader. This leads to namespace
problems as well as reloadability issues.
Ok, you lost me here. Shouldn't delegation handle the namespacecollisions??
If the web app class loader has a class definition (webapp:com.xyz.ClassA) with
exactly the same name in the same package as the root class loader(rootloader:
com.xyz.ClassA), I thought the web app would use (delegate loading)the
class
definition from the root class loader when PreferWebInf is set to false.
Isn't this why the PreferWebInf attribute, when set to true, can causeClassCastExceptions??
The web app when creating an instance of (webapp: com.xyz.ClassA)from
the web
app class loader can potentially pass a reference to this instanceto a
class
instance loaded from the root loader. The root class loader has adifferent class
definition for ClassA.
REALLY what makes since is that all common jar files be defined
in
the manifest
Class-Path OF THE ear FILE (if the WAR(s) are in an ear). These
jar
files should
then be loaded by the same class loader as the EJB jars. There shouldbe no need
for the WARs to have any reference to the utility jars since the
EJB
class loader
is the parent of the WAR class loaders.The ear file doesn't have a manifest classpath, but what you are getting
at makes sense. If you add a manifest to any EJBs in your app, theall
webapps (as well as all other EJBs) will be able to see it, sincewith
our structure, EJBs are loaded into the application's root classloader.
My problem is that the ACTUAL SERVLET classes are NOT being loadedby a separate
class loader from the EJB and common jar class loader. This is
completely
against
what is being said in the Weblogic documentation. The Manifest
Class-Path
should
have nothing to do with where the classes that reside in
WEB-INF/classes
of my
servlet are loaded.Classloaders will ask their parent for the class first before loading
it
themselves. So if the parent classloader somehow has visibility to
classes that your webpapp references, then it will get loaded by the
parent classloader.
I am in the middle of migrating an app from an older version of
Weblogic,
and
it would be helpful to have the ACTUAL class loading hierarchy welldocumented.
The basic hierarchy is all EJBs are in a root shared classloader and
each web application is loaded by a classloader that is a child of
that root.
Again, am I missing something here???My suspicion is that somehow these servlets are in the classpath ofthe
root classloader, so when the webapp classloaders delegate to thatone,
it will come up with the class.
mark
Mark Spotswood <[email protected]> wrote:
I believe what you are seeing is a bug in the servlet container.
The classloader organization is what you expect, but each webapp
is exporting the classpath information from its manifest to the
classloader above its classloader (which is common to all
three webapps) rather than to its own classloader. So because
of the delegation that happens with classloading, the common
parent classloader is the one that loads the class.
I believe that this behavior exists as an attempt to avoid
ClassCastExceptions, but I don't think that it is the right
solution to this problem. In our 8.1 release, this behavior
has been changed. That is, web applications no longer export
manifest classpath information to the parent of their classloader.
This change has not been ported back to the 7.x line, but a bug
report has been created (CR099889). You should be able to follow
up with support with this CR number.
mark
Mark Cotherman wrote:
I have read the BEA documentation on the class loader hierarchy
in
Weblogic Server,
and I have some questions regarding some behavior I am seeing.
I am running Weblogic Server 7.0.
I have an ear file that contains 3 web apps (wars) and several
utility
jars. The
web apps' manifests contain the Class-Path entry for the utility
jars.
My understanding
of this is that each web app SHOULD have its own class loader.
Also,
the utility
jars will be scoped in a separate class loader and WILL NOT have
visibility
to
the web app classes. The web app classes should have visibility
to
the utility
jars.
Is this correct????
I added a static segment of code in each web app and printed the
class
loader
for each servlet when it was loaded. I also printed the class loaderfrom a class
that is DEFINITELY contained in one of the utility jars. Here is
the
result:
Utility Class ClassLoader: sun.misc.Launcher$AppClassLoader@b9d04
Utility
Class
Parent ClassLoader: sun.misc.Launcher$ExtClassLoader@71732b
Servlet 1 ClassLoader: sun.misc.Launcher$AppClassLoader@b9d04 Servlet1 Parent
ClassLoader: sun.misc.Launcher$ExtClassLoader@71732b
Servlet 2 ClassLoader: sun.misc.Launcher$AppClassLoader@b9d04 Servlet2 Parent
ClassLoader: sun.misc.Launcher$ExtClassLoader@71732b
I'm a little confused.... I expected to see 3 different class loaders(i.e. one
for each class above). I believe the above printout says that all
3
classes are
being loaded by the SAME class loader instance
(Launcher$AppClassLoader@b9d04).
Am I interpreting this correctly? If so, what's going on? -
Class loading and Compile time constants
Hi,
I am not sure if this is the right place for basic questions. I would appreciate any help.
From my understanding, the compile time constants are folded into the byte code during compilation. ( E.g. static final int MAX = 10; ). When I access a compile time constant from a different class, I can see that the class that holds the constant is not loaded at all. ( using -verbose:class option )
Now, my question is, how does JVM access the class that holds the constant without loading it ?! Without the class being loaded, how can the JVM get a binary representation of the same ? What am I missing here ?
thanks,
Soumya.class A {
public static final int X = 10;
class B {
void foo(int n) {
switch n {
case A.X:
yadda();
}The value of X (10) from class A is "folded" into the bytecode of class B. -
Hello, i have a basic question. if i have defined 2 fields in a cube or a dso:
Name Quantity
and from the external flat file i get some characters for my quantity field. would my load fail? for standard dso and for write optimized?
NOTE: quantity field is a keyfigure defined as numeric.
and the load coming in has "VIKPATEL" for Quantity field and not numbers.
thanksHi Vik,
Yes, the load will fail.
May be you coud first load this data into BW (into PSA) and set both fields as characters fields. Then you can create DSO, do transformation from this PSA to the DSO, and put your logic as to what do you want to do with those Quantity that is not number (e.g. convert to 0, or 'Not assgined', etc).
You can use transfer rule, or a clean up ABAP code in the start routine.
Hope this helps. -
How can I make server use single class loader for several applications
I have several web/ejb applications. These applications use some common libraries and should share instances of classes from those libraries.
But applications are being deployed independently thus packaging all them to EAR is not acceptable.
I suppose the problem is that each application uses separate class loader.
How can I make AS use single class loader for a set of applications?
Different applications depend on different libraries so I need a way that will not share library for all applications on the domain but only for some exact applications.
When I placed common jar to *%domain%/lib* - all works. But that jar is shared between all applications on the domain.
When I tried to place common jar to *%domain%/lib/applibs* and specified --libraries* attribute on deploying I got exception
java.lang.ClassCastException: a.FirstDao cannot be cast to a.FirstDaoHere http://download.oracle.com/docs/cd/E19879-01/820-4336/6nfqd2b1t/index.html I read:
If multiple applications or modules refer to the same libraries, classes in those libraries are automatically shared.
This can reduce the memory footprint and allow sharing of static information.Does it mean that classes should be able to be casted ?You didn't specify which version of the application server you are using, but the config is similar as long as you know what to look for. Basically, you need to change the classloader delegation. Here's how it is done in 8.2
http://download.oracle.com/docs/cd/E19830-01/819-4721/beagb/index.html -
Dinamyc class loading and jar files
I'm new to java. I would like to load some plugins in my application (it's going to be packaged as a jar at the end). I managed to find some dinamyc class loading examples but they search for the classes to load in a directory.
This is the code:
public static void main(String[] args) {
File pluginDirectory = new File("src/pluginsreloaded/plugins");
if (!pluginDirectory.exists()) { // the plugin directory does not exist
System.out.println("The plugins directory does not exist!");
return;
FilenameFilter filter = new FilenameFilter() {
public boolean accept(File dir, String name) {
return name.endsWith(".class");
String[] pluginFiles = pluginDirectory.list(filter);
for (int i = 0; i < pluginFiles.length; i++) {
if (pluginFiles.indexOf("$") == -1) {
System.out.println("Loading: " + pluginFiles[i].substring(0, pluginFiles[i].length() - 6));
IPlugin plugin = pm.loadPlugin(pluginFiles[i].substring(0, pluginFiles[i].length() - 6));
System.out.println(plugin.description());
protected static IPlugin loadPlugin(String name) {
// Query the plugin list for the plugin
PluginFactory _plugin = (PluginFactory) pluginList.get(name);
if (_plugin == null) { // the plugin is not loaded
try {
Class.forName("pluginsReloaded.plugins." + name);
// The plugin makes an entry in the plugin list
// when loaded
_plugin = (PluginFactory) pluginList.get(name);
if (_plugin == null) {
return null;
} catch (ClassNotFoundException e) {
System.out.println("Plugin " + name + " not found!");
return _plugin.create();
}IPlugin is an interface. I am using netbeans 5.0. The error I get is this:
Exception in thread "main" java.lang.NoClassDefFoundError: pluginsReloaded/plugins/plugin1 (wrong name: pluginsreloaded/plugins/plugin1)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:164)
at pluginsreloaded.PluginManager.loadPlugin(PluginManager.java:30)
at pluginsreloaded.Main.main(Main.java:44)
Java Result: 1As far as I can see it can't find the class. My question is how can I load the class/where can I find it?
Thanks.You can use the java.util.jar.JarFile class to enumerate the contents of a jar. It's not good practice to search for plugins in this way though. A plugin may well involve serveral classes, which don't all have to be internal. Furthermore its wise to avoid any comitment about the mechaism by which class files are to be fetched. You might want to do it remotely, some time, or load them from a database.
What seesms to be the standard approach is to put a list of plugin classes into the jar as a text file.
Plugins for a given purpose usually implement some specified interface, or extend some abstract class to which their objects can be cast once loaded (without this they aren't really much use).
Say your plugins implment org.myorg.WidgetFactory then you put a list of them, one fully qualified name to a line, in a file or jar entry called META-INF/services/org.myorg.WidgetFactory. You framework picks up all such files from the classpath using ClassLoader.getResources() and loads all the classes whose names if finds, hence you can add new sets of plugins just by adding a new jar or class directory to the class path. -
Basic questions about Infocube
Hi, everyone.
I got very basic questions about infocube data handling.
With infopackage, I extracted all the data about employees from R/3.
But there were some mistakes during inputting employee data, like positions,
so I just extracted those employees data once more.
Now I have two requests in infocube, where the first one has some wrong data.
Is there any solutions about this?
I might got it all wrong, so as beginner, any suggestions and explanations will
be grateful.Hi,
You can manually delete the earlier request by going in the Manage option of the cube. select the request and click on delete icon at the bottom.
Other option is to make setting in the Infopackage to delete similar or overlapping request.
Data target tab --> 6th column Automatic loading / deletion of similar request. --> click on the blank icon --> you will get a pop-up --> select the radio button - "delete existing request" --> Select Conditions --> Infosource are same, datasource are same and source system are same, --> selections are "Same or More Comprehensive "
Assign points if useful
Regards
Venkata Devaraj !!! -
Basic questions about the CM handling of Photoshop
I have some basic questions how Potoshop handles colour management. Most probably this has been discussed many times before, but frankly, the manual is pretty poorly written on this subject. I do understand the principle of colour management pretty well, but am not sure whether I understand what Photoshop is doing. So could somebody please comment whether my reasoning is correct or not.
Let's assume my monitor is calibrated and its profile loaded in OSX's monitor preference panel. Let's further assume I'm working strictly in RGB.
Is the following correct:
• When I open a picture which has an embedded profile, then Photoshop first calculates the "true" values from the embedded profile (whatever this means) and from this point the screen representation based on the profile which I defined in the system pref pane. So the screen representation remains always the same, regardless of the embedded profile (besides some possible conversion artefacts, especially on the edges of the colour space).
• The same holds true in the opposite direction, so when I work on that picture on screen, then no matter which RGB space I pick as my working space, the result will always be exactly the same (except those aforementioned artefacts).
• Hence it doesn't matter which RGB colour space I choose as my working space, it could be sRGB, Adobe RGB, "my own wild profile", whatever, the results are always the same. Of course the RGB values will differ, but this will be compensated by the embedded profile.
• Yet the theoretically best working space is the colour space of my monitor, because this minimizes possible artefacts.
• When I "convert" the picture from one profile into an other, then not only that new profile is assigned and embedded, but also the RGB values are recalculated accordingly, so that the result will remain the same. For example, I could first "convert" a picture from the camera space to my monitor space, then work on it, and finally "convert" it to sRGB before uploading it to a web site.
• When I "assign" a new profile, then a new profile is simply assigned and embedded but the RGB values are not adjusted. So the RGB values remain the same, but because a different profile is embedded, the picture will actually be changed. Since Photoshop will recalculate the screen representation based on that new profile (and the monitor profile), I will see this change on the screen. (This action doesn't make much sense, except maybe to simulate the possible outcome on a system which misinterprets the profile, e.g. assumes sRGB.)
• And finally, when I leave the picture untouched but change the monitor profile in the system pref pane, then of course the picture will not change, but its screen representation will change, because Photoshop uses that profile to calculate the screen representation. (This action makes even less sense, of course.)
Have I understood? Then I have two final questions:
• When I open a RGB file without any profile in it, what does Photoshop assume? How does it calculate the screen display? What does it do if I "convert" such a picture or "assign" a profile?
• If I select in the colour settings as working color space the monitor space, then the colour managment rule for RGB changes to "Colour management off" and can't be changed to a different value. I don't understand this.
Thanks for your patience.• Yet the theoretically best working space is the colour space of my monitor, because this minimizes possible artefacts.
No.
(Edit: Any one screen usually has to be considered incidental, changing and transient and is not the target-medium, so it makes little sense to work based on its specific limitations.)
• When I open a RGB file without any profile in it, what does Photoshop assume? How does it calculate the screen display? What does it do if I "convert" such a picture or "assign" a profile?
If one opens an unprofiled file, Photoshop treats it as if it had the profile selected under RGB-Working-Space embedded and calculates display and conversion on that basis.
(Edit: And that’s the danger of unprofiled files – they would look different if someone edited them who used a different Working Space.)
Assigning such a file a profile is no different from assigning a profiled image a different profile – the RGB-values remain unchanged, the »key« for interpreting them changes and subsequently it will be displayed differently. -
Plz help me out with class loader problem
hai forum members,
I have a code which loads class files from local disk.
It works fine with some classes ,
But i get this exception when i am selecting certain other class files
I am using jdeveloper.
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: Filter (wrong name: project1/Filter)
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:620)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at com.jutframe.JavaUnitTester.selectClass_actionPerformed(JavaUnitTester.java:449)
at com.jutframe.JavaUnitTester$7.actionPerformed(JavaUnitTester.java:338)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
at javax.swing.AbstractButton.doClick(AbstractButton.java:302)
at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1000)
at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1041)
at java.awt.Component.processMouseEvent(Component.java:5488)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3093)
at java.awt.Component.processEvent(Component.java:5253)
at java.awt.Container.processEvent(Container.java:1966)
at java.awt.Component.dispatchEventImpl(Component.java:3955)
at java.awt.Container.dispatchEventImpl(Container.java:2024)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
at java.awt.Container.dispatchEventImpl(Container.java:2010)
at java.awt.Window.dispatchEventImpl(Window.java:1766)
at java.awt.Component.dispatchEvent(Component.java:3803)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:234)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
JFileChooser jfilechooser=new JFileChooser();
Filterclass filter=new Filterclass();
//Set selection mode for file chooser
jfilechooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
//set file filter
jfilechooser.setFileFilter(filter);
int returnVal = jfilechooser.showOpenDialog(this);
if(returnVal == JFileChooser.APPROVE_OPTION)
try
String str = jfilechooser.getSelectedFile().getName();
String parent=jfilechooser.getSelectedFile().getParent();
// Create a File object on the root of the directory containing the class file
File file = new File(parent);
// Convert File to a URL
URL url = file.toURL();
URL[] urls = new URL[]{url};
// Create a new class loader with the directory
ClassLoader cl = new URLClassLoader(urls);
StringTokenizer st = new StringTokenizer(str,".");
String s = st.nextToken ();
Class c = cl.loadClass(s); //ERROR IS SHOWN IN THIS PARTICULAR LINE
Object instance=c.newInstance();
--------------------------------------------please help me trace my mistake.
thank you all.i think the problem that i have set a particular class path for my class files and my application loads files from that alone.
So plz tell me if theres any way to access the class path of a particular file dynamically?
regards
Maybe you are looking for
-
Does anyone know how to remove the annoying audio clicks embedded in transitions?
It appears that all transitions in iMovie '11 are accompanied by a short "click" embedded within the transition. Is there any way to tell iMovie to remove those clicks? (One can see the audio peak when using the precision editor, but volume adjustmen
-
how pooled table stored in database table?plzz tell
-
The specified application doesn't exist
I update an existing application in the Dev environment with the Copy Application Tool and a user got the following. The specified application doesn't exist. Trace: Number:-2147220954 Description: Source:General Security Error Page:
-
Font issues with Snow Leopard, Adobe and more
Since purchasing my new 27" iMac with Snow Leopard and instlaling Adobe Creative Suites 4, I have had numerous font issues. Apple has created huge problems for designers and printers that must use postscript type 1 fonts for helvetica and helvetica n
-
Is there any way to restore contacts that have been deleted from the icloud website?
All my contacts were deleted from icloud - no intervention on my end -(I spent hours updating and eliminating duplicates after syncing from MS Outlook and don't look forward to that exercise again) thanks