3

How can I find out if a given program is 64 or 32 bit version? I can't to do it by simply looking at where it's installed, since some programs need no installer and may be put anywhere.

Here, no process explorer will help me, since the application refuses to start.

Reason why I need it: My new eclipse installation fails to load "jvm.dll" just like here. I'd bet I'm using 64-bit versions of both eclipse and JVM, but I'm slowly getting unsure.

1

3 Answers 3

3

There is a GNU-util called "file". You can download GNU Coreutils for Windows and download the file package here.

If you run something like

cd C:/path/to/file/
file myfile.exe

it will output something along the lines of the following

myfile.exe: ELF 64-bit LSB executable, x86-64, [...]

so the output of file myfile.exe tells you that the executable is a 64-bit executable.

If you don't want to install GNU Coreutils on Windows and happen to have Linux installed, most popular distros include the file utility. You could also use a liveCD to boot Linux from a CD.

6
  • I'm using cygwin already and it's there... I just didn't know file can be used for this, too.
    – maaartinus
    Mar 13, 2011 at 18:07
  • +1 PE inspection is the way to go. For those interested, look it up at Google if you need a lot more information about an executable as you can do useful things with it. Eg. Enabling ASLR on bad compiled executables to increase security on a server... Mar 13, 2011 at 20:02
  • @Tomwij wrong answer for your comment mate =P
    – Pylsa
    Mar 13, 2011 at 20:10
  • Don't think so, file does PE inspection. ;-) Mar 13, 2011 at 20:16
  • 1
    @Tomwij Oh haha! I thought you meant Process Explorer with the abbreviation! =P
    – Pylsa
    Mar 13, 2011 at 20:21
2

I had similar problems with JNI in the past too. For me, the solution was to find by hand location of equivalent 64bit dll and enter it into needed setting file.

Also make sure that you have installed 64bit JRE too (it should have been installed automatically with newest versions of JDK, but this doesn't happen on older versions of JDK).

1
  • 1
    I installed a 64-bit JDK just today and my JRE is for whatever reason 32-bit only. So I pointed to jdk.../jre in eclipse.ini and it works. Thank you.
    – maaartinus
    Mar 13, 2011 at 18:16
2

Microsoft Process Explorer -- find out what's running on your PC, and why

Process Explorer, a tool by Microsoft Sysinternals, can you show you that and much more:

enter image description here

This is also available for DLLs if you open the Lower Pane and set it to View DLLS with CTRL+D:

enter image description here

(Click image to enlarge)

7
  • 2
    The normal taskmanager displays a *32 behind the image name too. Mar 13, 2011 at 15:44
  • Good to know, but there's one more problem... (I'm updating my question).
    – maaartinus
    Mar 13, 2011 at 15:53
  • @CodeInChaos: +1 But... That's where TM stops and PE starts. Mar 13, 2011 at 16:23
  • 1
    @maartinus: Options --> Increase Difference Highlight Duration a lot... ;-) Mar 13, 2011 at 16:24
  • @TomWij Cool option!
    – maaartinus
    Mar 13, 2011 at 18:10

Not the answer you're looking for? Browse other questions tagged .