是否有一个独立于平台的Java语句来从与Java源代码不同的目录中加载本机库?我想用这样的东西:
public class HelloWorld {
static {
System.loadLibrary("../some_project/HelloWorld");
}
public static native void print();
}
Run Code Online (Sandbox Code Playgroud)
问题是System.loadLibrary()不支持pathname参数中的目录分隔符.另外,不幸的是,System.load()需要一个绝对路径名,这不仅意味着我不能像上面那样指定一个相对目录(我想做),但它还要求参数包括,例如,前面的Linux系统上JNI库名称的"lib"和".so"扩展名.
有没有一种标准的处理方式?如果可能的话,我想避免编写一堆依赖于平台的Java代码来构造正确的JNI库名.
我对Ruby中的作用域如何工作感到困惑.哪些Ruby作用域规则阻止以下代码打印出x的值?
#!/usr/bin/ruby
x = 5
def test
puts "x = #{x}"
end
test # => undefined local variable or method `x' for main:Object
Run Code Online (Sandbox Code Playgroud)
等效的Python脚本会打印x的值:
#!/usr/bin/python
x = 5
def test():
print "x = %s" % x
test() # => x = 5
Run Code Online (Sandbox Code Playgroud)