小编Rob*_*ati的帖子

在Eclipse/PyDev Jython项目中将.dll添加到java.library.path

我正在尝试在PyDev Jython项目中使用已编译的.jar Java库.

我成功地将.jar添加到了PYTHONPATH,并且能够开始使用自动完成工作进行编码.

该库也需要.dll扩展名javaHeclib.dll,因此我将其添加到项目的External Libs部分.

我可以很好地导入库,但是当我尝试访问它的任何函数时出现错误:

java.lang.UnsatisfiedLinkError: java.lang.UnsatisfiedLinkError: no javaHeclib in java.library.path
Run Code Online (Sandbox Code Playgroud)

我在运行配置中添加了一个VM参数,没有运气:

-Djava.library.path="Y:/path/to/javaHeclib.dll;${env_var:PATH}"
Run Code Online (Sandbox Code Playgroud)

我可以使用java.library.path上面的命令行从命令行运行库.

在PyDev控制台中进行试验,我注意到我可以使用绝对路径加载.dll扩展名,但不能加载相对路径:

>>> import java.lang
>>> java.lang.System.load('Y:/path/to/javaHeclib.dll')
>>> java.lang.System.loadLibrary('javaHeclib')
Traceback (most recent call last):
  File "<console>", line 1, in ?
java.lang.UnsatisfiedLinkError: java.lang.UnsatisfiedLinkError: no javaHeclib in java.library.path
Run Code Online (Sandbox Code Playgroud)

不幸的是,该库正在使用System.loadLibrary上面的调用,我无法访问其源代码.

为什么javaHeclib.dll不在我的java.library.path

编辑

设置java.library.path到包含dll的目录不允许我使用它加载它System.loadLibrary.

-Djava.library.path="Y:/path/to/dll/;${env_var:PATH}"
Run Code Online (Sandbox Code Playgroud)

(使用正斜杠没有什么区别.)我也尝试更改默认的VM args eclipse.ini,没有运气:

-vmargs
-Dosgi.requiredJavaVersion=1.5
-Xms40m
-Xmx384m
-Djava.library.path="Y:\path\to\dll\;${env_var:PATH}"
Run Code Online (Sandbox Code Playgroud)

eclipse jython pydev java.library.path

20
推荐指数
2
解决办法
6万
查看次数

解析此脚本语言的最有效方法

我正在为一个长期过时的文本编辑器的脚本语言实现一个解释器,而我在让词法分析器正常工作方面遇到了一些麻烦.

以下是该语言有问题部分的示例:

T
L /LOCATE ME/
C /LOCATE ME/CHANGED ME/ * *
C ;CHANGED ME;CHANGED ME AGAIN; 1 *
Run Code Online (Sandbox Code Playgroud)

/人物似乎引用字符串,也充当分隔符C(CHANGE在)命令sed型语法,但它允许任何字符作为分隔符.

我可能实现了大约一半最常见的命令,parse_tokens(line.split())直到现在才使用.这很快又很脏,但效果出奇的好.

为了避免写我自己的词法分析器,我试过了shlex.

除了CHANGE案例之外,它的效果非常好:

import shlex

def shlex_test(cmd_str):
    lex = shlex.shlex(cmd_str)
    lex.quotes = '/'
    return list(lex)

print(shlex_test('L /spaced string/'))
# OK! gives: ['L', '/spaced string/']

print(shlex_test('C /spaced string/another string/ * *'))
# gives   : ['C', '/spaced string/', 'another', 'string/', '*', '*']
# desired : any format that …
Run Code Online (Sandbox Code Playgroud)

python lexer shlex

7
推荐指数
1
解决办法
484
查看次数

有什么方法可以限制 Julia 中 NLsolve 搜索的区域吗?

我正在尝试找到一个非线性(大致四次)方程的根。\n该方程始终有四个根,其中一对接近于零,一个大的正根和一个大的负根。我想确定任何一个接近零的根,但是nlsolve,即使最初的猜测非常接近这些根,似乎总是收敛于大的正根或负根。

\n

该函数的图本质上看起来像一个恒定的负值,具有接近零的(非常窄的)偶数阶极点,并逐渐上升到在大的正根和负根处交叉零。

\n

有什么方法可以限制 搜索的区域nlsolve,或者做一些事情让它对我的函数中这个极点的存在更加敏感?

\n

编辑:\n这里有一些重现问题的示例代码:

\n
using NLsolve\n\nfunction f!(F,x)\n    x = x[1]\n    F[1] = -15000 + x^4 / (x+1e-5)^2\nend\n# nlsolve will find the root at -122\nnlsolve(f!,[0.0])\n
Run Code Online (Sandbox Code Playgroud)\n

作为输出,我得到:

\n
Results of Nonlinear Solver Algorithm\n * Algorithm: Trust-region with dogleg and autoscaling\n * Starting Point: [0.0]\n * Zero: [-122.47447713915808]\n * Inf-norm of residuals: 0.000000\n * Iterations: 15\n * Convergence: true\n   * |x - x'| < 0.0e+00: false\n   * |f(x)| < 1.0e-08: true\n * Function …
Run Code Online (Sandbox Code Playgroud)

nonlinear-optimization equation-solving julia

5
推荐指数
1
解决办法
946
查看次数

Excel VBA Cells.Find失败,除非我使用Application.Wait.为什么?

我正在研究一个VBA宏,我遇到了一些非常奇怪的行为.

它可以正常工作Application.ScreenUpdating = True,甚至可以在屏幕更新关闭时使用VBA调试器逐步完成宏.

不幸的是,只是在屏幕更新关闭的情况下运行宏会导致Find函数在以下代码中失败:

Application.StatusBar = "Extracting data and updating tables..."
Application.ScreenUpdating = False
Application.DisplayAlerts = False

Workbooks.Open FileName:=Save_folder & "new_data.xls"
Workbooks("new_data.xls").Sheets("data").Range("B9:B39").Copy

Dim tempdate As Date, startCell As Range

tempdate = DateAdd("d", -1, Now)
tempdate = DateSerial(Year(tempdate), Month(tempdate), 1) 'Start of the month
Dim strdate As String
strdate = Format(tempdate, "Short Date")

Set startCell = ThisWorkbook.Sheets("Raw Data").Cells.Find(What:=CDate(strdate), After:=ThisWorkbook.Sheets("Raw Data").Range("A1"), LookIn:=xlFormulas _
 , LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False)

If startCell Is Nothing Then
    MsgBox "Couldn't find a …
Run Code Online (Sandbox Code Playgroud)

excel vba replace excel-vba

2
推荐指数
1
解决办法
2701
查看次数