Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

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....

share|improve this question
add comment

3 Answers 3

up vote 3 down vote accepted

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.

share|improve this answer
    
I'm using cygwin already and it's there... I just didn't know file can be used for this, too. –  maaartinus Mar 13 '11 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... –  Tom Wijsman Mar 13 '11 at 20:02
    
@Tomwij wrong answer for your comment mate =P –  BloodPhilia Mar 13 '11 at 20:10
    
Don't think so, file does PE inspection. ;-) –  Tom Wijsman Mar 13 '11 at 20:16
1  
@Tomwij Oh haha! I thought you meant Process Explorer with the abbreviation! =P –  BloodPhilia Mar 13 '11 at 20:21
show 1 more comment

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).

share|improve this answer
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 '11 at 18:16
add comment

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)

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

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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