我正在和Sikuli合作,我认为它是建立在Jython之上的.我想制作一个脚本,发出轻微的哔哔声以吸引用户的注意力.(这是在Windows上.)
我怎样才能做到这一点?我看到该winsound模块在Jython上不可用.
(请注意,我想使用声卡,而不是内置的蜂鸣器.)
我可以获得一个已安装的应用程序列表,但如何使用Jython获取状态?
我想在java类中扩展一个jython类
public class JavaClass extends JythonClass
Run Code Online (Sandbox Code Playgroud)
如何导入Jython类?它必须编译吗?文档链接已经很有用.
例:
class JythonClass(threading.Thread):
def do(self):
print("hallo")
Run Code Online (Sandbox Code Playgroud)
-
public class JavaClass extends JythonClass
{
public void hello()
{ System.out.print("hallo")}
}
Run Code Online (Sandbox Code Playgroud) 我正在扩展一个用Java编写的服务器应用程序,以允许运行用户定义的回调(用Javascript编写)以响应请求.我已经完成了一些阅读,虽然似乎可以在Nashorn中禁用Java类,但没有什么能阻止用户创建在不使用任何Java API的情况下分配庞大数组的Javascript代码.我想知道是否有任何方法可以主动或反应性地限制这一点.
我想出的解决方案是拥有一个具有较小最大堆大小的JVM进程池,它们负责运行用户定义的代码.将有一个工作池管理器在需要时生成新进程.这样,主进程以及其他用户定义的代码不会受到单个恶意用户的影响.虽然这种解决方案可能会起作用,但它似乎很苛刻.是否没有更好的解决方案来防止恶意用户使用太多内存?
我不是特别设置Javascript,所以如果存在可以在JVM中运行的任何其他脚本语言并且还支持内存使用限制,我将愿意使用它而不是Nashorn.不幸的是,似乎Jython,JRuby和LuaJava都没有我想要的东西.提前致谢.
我只是在短时间内使用unittest.我正在使用Jython 2.7.10"最终版本"
在解释TestResult的Python 2.7文档中,它说:
TestResult类的以下方法用于维护内部数据结构,并且可以在子类中进行扩展以支持其他报告要求.这对于构建在运行测试时支持交互式报告的工具特别有用.
startTest(test)... stopTest(test)... startTestRun()... stopTestRun()
这就是我想要做的......但我无法弄清楚你如何使用TestResult.这是一个SSCCE ......
import unittest
class TestResultX( unittest.TestResult ):
def startTest( self, test ):
print( '# blip')
unittest.TestResult.startTest( self, test )
def stopTest( self, test ):
print( '# blop')
unittest.TestResult.stopTest( self, test )
def startTestRun( self ):
print( '# blep')
unittest.TestResult.startTestRun( self )
def stopTestRun( self ):
print( '# blap')
unittest.TestResult.stopTestRun( self )
class TestCaseX( unittest.TestCase ):
def test_nonsense(self):
print( '# wotcha' )
self.assertTrue( False )
def run( self, test_result=None ):
print( …Run Code Online (Sandbox Code Playgroud) 我最近开始在The Grinder 3中编写一些性能测试,我注意到的第一件事就是PyCheckMate不起作用,因为它无法找到一些导入.哪些编辑器为Jython提供了最好的支持?
Jython是否支持Tkinter?如果我用Python编写程序并使用Tkinter将GUI前端放在其上,那么在Jython中执行相同的程序有多难?或者是否有更好的Jython GUI解决方案?
当我尝试java -jar"jarname"它显示错误为:import Tkinter,tkFileDialog,tkMessageBox,tempfile,shutil ImportError:没有名为Tkinter的模块
我怎么能解决这个............提前谢谢..... :)
我一直在寻找将我为朋友制作的Python脚本合并到我正在尝试开发的Java应用程序中.经过一些试验和错误,我终于发现了'Jython',并使用PythonInterpreter尝试运行脚本.
但是,在尝试运行它时,我在Python脚本中收到错误.这很奇怪,因为当我尝试在Java之外运行脚本(在这种情况下是Eclipse IDE)时,脚本工作正常并完全符合我的需要(从存储在同一目录中的.docx文件中提取所有图像).
有人可以帮帮我吗?
Java的:
import org.python.core.PyException;
import org.python.util.PythonInterpreter;
public class SPImageExtractor
{
public static void main(String[] args) throws PyException
{
try
{
PythonInterpreter.initialize(System.getProperties(), System.getProperties(), new String[0]);
PythonInterpreter interp = new PythonInterpreter();
interp.execfile("C:/Documents and Settings/user/workspace/Intern Project/Proposals/Converted Proposals/Image-Extractor2.py");
}
catch(Exception e)
{
System.out.println(e.toString());
e.printStackTrace();
}
}
}
Run Code Online (Sandbox Code Playgroud)
关于Python脚本的Java错误:
回溯(最近一次调用最后一次):
文件"C:/ Documents and Settings/user/workspace/Intern Project/Proposals/Converted Proposals/Image-Extractor2.py",第19行,在thisDir中,_ = path.split(路径. abspath(argv [0]))IndexError:索引超出范围:0回溯(最近一次调用最后一次):
文件"C:/ Documents and Settings/user/workspace/Intern Project/Proposals/Converted Proposals/Image-Extractor2.py ",第19行,在thisDir中,_ = path.split(path.abspath(argv [0]))IndexError:index超出范围:0
蟒蛇:
from os import path, chdir, listdir, mkdir, gcwd
from sys import …Run Code Online (Sandbox Code Playgroud) 示例代码:
from java.lang import System
if __name__ == '__main__':
[System.out.print(x) for x in "Python-powered Java Hello World from within a List-Comprehension."]
Run Code Online (Sandbox Code Playgroud)
烦人的输出:
console: Failed to install 'org.python.util.JLineConsole': java.nio.charset.UnsupportedCharsetException: cp0.
console: Failed to install 'org.python.util.JLineConsole': java.nio.charset.UnsupportedCharsetException: cp0.
Python-powered Java Hello World from within a List-Comprehension.
Run Code Online (Sandbox Code Playgroud)
我试过这里和这里描述的解决方案.两个解决方案都失败了(我已经将-Dpython.console.encoding = UTF-8参数添加到JVM和PyDev交互式控制台).
从4个月前开始还有另外一个问题,没有人回答.那么,我该如何解决呢?
编辑:我刚安装了新的Eclipse Luna,用Jython安装了PyDev,同样的事情发生了.
我datetime在我的pig脚本中使用的一些Python udfs中使用.到现在为止还挺好.我在Cloudera 5.5上使用了猪12.0
但是,我也需要使用pytz或者dateutil包,它们似乎不是一个vanilla python安装的一部分.
我可以Pig在某些方面在我的udfs中使用它们吗?如果是这样,怎么样?我认为dateutil是安装在我的节点上(我不是管理员,所以我怎么能实际检查是这种情况?),但是当我输入时:
import sys
#I append the path to dateutil on my local windows machine. Is that correct?
sys.path.append('C:/Users/me/AppData/Local/Continuum/Anaconda2/lib/site-packages')
from dateutil import tz
Run Code Online (Sandbox Code Playgroud)
在我的udfs.py剧本中,我得到:
2016-08-30 09:56:06,572 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 1121: Python Error. Traceback (most recent call last):
File "udfs.py", line 23, in <module>
from dateutil import tz
ImportError: No module named dateutil
Run Code Online (Sandbox Code Playgroud)
当我运行我的猪脚本.
我所有的其他python udfs(datetime例如使用)工作得很好.知道怎么解决这个问题吗?
非常感谢!
UPDATE
在用python路径玩了一下后,我现在能够 …
jython ×10
python ×5
java ×4
eclipse ×2
apache-pig ×1
audio ×1
cloudera ×1
editor ×1
interpreter ×1
javascript ×1
nashorn ×1
pydev ×1
pytz ×1
rhino ×1
sikuli ×1
tkinter ×1
unit-testing ×1
websphere ×1
windows ×1
wsadmin ×1