Sha256: e460f8bcbb5bb0b93153e0de37cbe8e12df4a46cdff57985b706ac0056bcfaf6

Contents?: true

Size: 862 Bytes

Versions: 46

Compression:

Stored size: 862 Bytes

Contents

# This class knows how to dynamically set the 'java' native library path
# It might not work with java 9?
class NativeLoader
  attr_reader :separator, :current_path

  # This module wraps java_import with namespace JC
  module JC
    java_import 'java.lang.Class'
    java_import 'java.lang.System'
    java_import 'java.io.File'
  end

  def initialize
    @separator = JC::File.pathSeparatorChar
    @current_path = JC::System.getProperty('java.library.path')
  end

  def add_native_path(pth)
    current_path << separator << pth
    JC::System.setProperty('java.library.path', current_path)
    field = JC::Class.for_name('java.lang.ClassLoader')
                     .get_declared_field('sys_paths')
    return unless field
    field.accessible = true # some jruby magic
    field.set(JC::Class.for_name('java.lang.System').get_class_loader, nil)
  end
end

Version data entries

46 entries across 46 versions & 2 rubygems

Version Path
picrate-1.3.0-java lib/picrate/native_loader.rb
propane-3.4.2-java lib/propane/native_loader.rb
picrate-1.2.4-java lib/picrate/native_loader.rb
picrate-1.2.3-java lib/picrate/native_loader.rb
propane-3.4.1-java lib/propane/native_loader.rb
picrate-1.2.2-java lib/picrate/native_loader.rb
picrate-1.2.1-java lib/picrate/native_loader.rb
picrate-1.2.0-java lib/picrate/native_loader.rb
picrate-1.1.0-java lib/picrate/native_loader.rb
picrate-1.0.0-java lib/picrate/native_loader.rb
propane-3.4.0-java lib/propane/native_loader.rb
picrate-0.9.0-java lib/picrate/native_loader.rb
picrate-0.8.0-java lib/picrate/native_loader.rb
propane-3.3.1-java lib/propane/native_loader.rb
propane-3.3.0-java lib/propane/native_loader.rb
picrate-0.7.0-java lib/picrate/native_loader.rb
propane-3.2.0-java lib/propane/native_loader.rb
propane-3.1.0.pre-java lib/propane/native_loader.rb
picrate-0.6.0-java lib/picrate/native_loader.rb
propane-2.9.3-java lib/propane/native_loader.rb