code: def setup_jvm():
      # This test requires Arrow Java to be built in the same source tree
      try:
          arrow_dir = os.environ["ARROW_SOURCE_DIR"]
      except KeyError:
          arrow_dir = os.path.join(
              os.path.dirname(__file__), "..", "..", "..", "..", ".."
          )
      pom_path = os.path.join(arrow_dir, "java", "pom.xml")
      tree = ET.parse(pom_path)
      version = (
          tree.getroot()
          .find(
              "POM:version",
              namespaces={"POM": "http://maven.apache.org/POM/4.0.0"},
          )
          .text
      )
      jar_path = os.path.join(
          arrow_dir,
          "java",
          "tools",
          "target",
          "arrow-tools-{}-jar-with-dependencies.jar".format(version),
      )
      jar_path = os.getenv("ARROW_TOOLS_JAR", jar_path)
      jar_path += ":{}".format(
          os.path.join(
              arrow_dir,
              "java",
              "c/target/arrow-c-data-{}.jar".format(version),
          )
      )
      kwargs = {}
      # This will be the default behaviour in jpype 0.8+
      kwargs["convertStrings"] = False
      jpype.startJVM(
          jpype.getDefaultJVMPath(),
          "-Djava.class.path=" + jar_path,
          **kwargs,
      )
  
imports: import decimal
  import gc
  import os
  import sys
  import unittest
  import xml.etree.ElementTree
  import jpype
  import pyarrow
  import pyarrow.ipc
  from pyarrow.cffi import ffi
label_desc: Use image node_id 1 for calling a global function with example usage: setup_jvm() without return types