Problem: Win7, LibO 5, Java 1.7, Python 2.7 (all 64-bit)


I have LibO spreadsheet with a load of Python macros, running successfully on OpenSuSE 13.2 ×64 and LibreOffice 5.

Today I copied all this stuff to Win7, LibO 5, Java 1.7, Python 2.7 (all 64-bit).

Unfortunately, any attempt to run Python macro from within LibO calc spreadsheet results in this error – SEH Exception: ACCESS VIOLATION.

Anyone have any idea what went wrong?

Thanks in advance.

I have removed 64bit versions of Java, LibO and Python 2.7, and installed 32bit instead. At a glance, everything works.

Many thanks to all who tried to help !

Most likely due to running LO & Java in differing bit-size. You will need to check…

A. Is LO 32-bit or 64-bit?

It does not tell you within the program. You will need to examine the MSI. Checking the available versions it has been x86-64 (64-bit) from the start, as opposed to x86 (32-bit), so it almost certainly is 64-bit.

B. Is Java 32-bit or 64-bit?

In contrast, Java is very likely to be 32-bit, in spite of your running 64-bit Windows. Blame Oracle! Search for “32-bit Java on 64-bit Windows” in Q57861 (32-bit is the default install). If you insist on installing 64-bit (which you may need for LO) a link is available at the same question (‘manual download’).

C. Use the same Bitsize Java as LO

You will likely have more than one Java on your system. You can administrate that at the following location:-

  • (menu)ToolsOptionsLibreOfficeAdvancedJava Options

    (it will show all the Java versions that you have installed; select the one to use)

    (a 32-bit Java must be selected if using a 32-bit LO/OO)

    (a 64-bit Java must be selected if using a 64-bit LO/OO)
  • Press OK

If this helps then please tick the answer (:heavy_check_mark:)

…and/or show you like it with an uptick ()

Hi, Alex,

Thanks for help!
I left notebook in the office, so I can try only tomorrow.

ALL installs of LibO, JAVA, and Python are 64 bit, 100% for sure.
BTW, I installed Python 2.7 on Win7, may be I should use Python 3.5 instead?
I have no idea, and found no info, which version of Python is being used by LibO developers.

@AlexKemp: examining is wrong way, you see the bitness in Task Manager.

Hi rautamiekka
I no longer run Windows. What, exactly, would someone need to examine in the Task Manager to determine the cpu bit-width? What would that look like? And remember - simple enough for novice users.

Hi LinuksGuru
Are you sure on Java? The default from Oracle for 64-bit Windows is actually 32-bit Java.

@AlexKemp: Under the ‘Processes’ tab, the first column (I think it was ‘Process Name’, I’m on Finnish Win7 now) the process name is appended with *32 for 32-bit processes and nothing for 64-bit ones. This is the only way to find out what you’re running as which bit width, others require something else, especially if you’re not running something yet. I don’t remember what the thing was with 16-bit processes under 32-bit Window$, but 64-bit won’t allow 16-bit, the subsystem doesn’t exist.