Since I'm stuck in deciding for sure if I should just delete C:\WINDOWS\system32\java.exe ...

(I use the java.exe from C:\Program Files\Java[javaversion]\bin, which I explicitly set in my path environment variable):

Is there a record set or map or database in Windows XP keeping track of which file belongs to which program ?

An online database for this purpose where I can have a look to be sure?

A third party program?

Unlike in linked question I would like to know about static records, maybe created at installation time. You never know if the running instance will touch every one of its potential files for this instance. Also, this is going nowhere: running every installed program to see if it touches java.exe. Maybe someone already developed a script or similar, employing Process Explorer and/or Process Monitor and/or handle and/or something else to index all files once or regularly, retrospectively?

  • I'm sure you can safely delete it. at worst make a backup and if something you run doesn't work in the next week, you know which program it belongs to. If not, you're OK. – Jakob Weisblat Jan 22 '13 at 4:56
  • @Jake223 perfectly legitimate approach... I'm just admittedly a little bit fed up with trial and error and want to know actually what I'm doing by now, independent of the java.exe process which is probably just a copy over in the installation routine...maybe I should check if oracle has something published ..."this is how we install software on you machine" style – panny Jan 22 '13 at 6:15

Thinking about where references to C:\WINDOWS\system32\java.exe could be, which I could check without having to run every program on the computer, I'd think:

  1. In the registry (which I can search with regedt32).
  2. In a file somewhere - either a data file or an executable file.
  3. (have I missed any possibilities?)

Option 2 could be checked by just searching all files for (say) the text java, unless the files are compressed or the reference to java is being deliberately concealed. I've checked and Windows Search doesn't seem interested in finding strings within executable files, so it would be necessary to use something like strings from GNU BinUtils to find a list of text strings in each executable file, followed by grep to find all references to java.

| improve this answer | |
  • Is there maybe a hidden something in windows xp, a background service registering files when they are installed installed with the program name (also created for the start menu)? Or a third party program for this..?I remember on linux there are similar executable...I think emerge of gentoo has something like that.. – panny Jan 22 '13 at 23:31
  • @panny: I'm not aware of such a thing in Windows XP and, even if there was, that would rely on all the software on the PC being installed according to the procedure that registers the files, which might be optimistic ... – Simon Jan 23 '13 at 0:26
  • It could be a disk monitoring deamon and would only need to be informed on installation start and installation end or maybe installation process name oder id or something that identifies it as an installation routine? – panny Jan 23 '13 at 3:31
  • 2
    I also thought about renaming java.exe and replacing it with another program called java.exe that simply called the renamed java executable after dumping a current process list to a logfile. That would be similar to the approach suggested by @Jake223 but it wouldn't actually break anything that relied on java.exe. If, after a period of time, the logfile had some contents, then comparing the process list when java was called with the process list at other times should give some clues as to what is using that particular executable file. – Simon Jan 23 '13 at 4:47

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.