Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

calljava#69

May 3, 2019· 10 comments
Discussion options

https://pyqt5.com/calljava.html

如果你设置一个线程为守护线程,就表示你在说这个线程是不重要的,在进程退出的时候,不用等待这个线程退出。如果你的主线程在退出的时候,不用等待那些子线程完成,那就设置这些线程的daemon属性。

You must be logged in to vote

Replies: 10 comments

Comment options

emm这里不知道什么用绝对路径就报错

libs = '{};{}'.format(    'libs/bcprov-jdk16-146.jar',    'libs/aspose-cells-19.2.jar')

你好,在win环境下试了你的代码,可以实现截图。但是我用了mac环境就出问题了,我在mac环境下 把jar包放在了 java_home下的 /lib文件夹下 还有jre/lib 文件夹下、也同时在/Library/Java/Extensions/下放了两个jar包,之所以在三个路径下放jar,是因为我不知道应该放在哪里。。。不管怎么样,代码运行了,没有报TypeError: Class com.aspose.cells.Workbook is not found。 但是代码运行到jpype.attachThreadToJVM() 此时console会出现如下warning
DeprecationWarning: jpype._core.attachThreadToJVM is deprecated, use java.lang.Thread.attach instead
jpype.attachThreadToJVM()
此时程序并没有报错中断,但是会永久的卡在这里没有结果,不会中止。
请问要怎么办?

You must be logged in to vote
0 replies
Comment options

892768447
Feb 2, 2021
Maintainer Author

@warlock-lv
加上print看看是不是 attachThreadToJVM 函数导致的,因为官方的这个jpype版本这个函数过时了。如果是这个问题。可以考虑降低它的版本

# 解决多线程问题jpype.attachThreadToJVM()print('convertToImage')
You must be logged in to vote
0 replies
Comment options

def convertToImage():     Workbook = jpype.JClass('com.aspose.cells.Workbook')     print('1111111')     ImageFormat = jpype.JClass('com.aspose.cells.ImageFormat')     print('2222222')     ImageOrPrintOptions = jpype.JClass( 'com.aspose.cells.ImageOrPrintOptions')     SheetRender = jpype.JClass('com.aspose.cells.SheetRender')     print('3333333')     book = Workbook(os.path.abspath('/Users/xxx/Desktop/test_res/test.xlsx').replace('\\', '/'))     # 保存为html     print('444444')

我降低了jpype1库的版本,的确那个warning不报了,但是 程序还是会卡住、运行不下去,我看了一下,它卡在了print('444444')上一行,这个会是什么问题呢

You must be logged in to vote
0 replies
Comment options

892768447
Feb 3, 2021
Maintainer Author

@warlock-lv
可能是分隔符导致的
windows里是 ;
linux/mac 里是 :
这样试试

libs='{0}{1}{2}'.format('libs/bcprov-jdk16-146.jar',os.pathsep,'libs/aspose-cells-19.2.jar')
You must be logged in to vote
0 replies
Comment options

'-Xmx512M', '-Djava.class.path=libs/bcprov-jdk16-146.jar/libs/aspose-cells-19.2.jar')
试了,还是卡住,这样拼出来的 command class.path 如上。

You must be logged in to vote
0 replies
Comment options

892768447
Feb 3, 2021
Maintainer Author

'-Xmx512M', '-Djava.class.path=libs/bcprov-jdk16-146.jar/libs/aspose-cells-19.2.jar')
试了,还是卡住,这样拼出来的 command class.path 如上。

你这没对啊。中间不是应该有个冒号:
-Djava.class.path=libs/bcprov-jdk16-146.jar : libs/aspose-cells-19.2.jar 类似这种。

You must be logged in to vote
0 replies
Comment options

'-Xmx512M', '-Djava.class.path=libs/bcprov-jdk16-146.jar:libs/aspose-cells-19.2.jar')
哦,拼出来的这样。 也不行。

You must be logged in to vote
0 replies
Comment options

892768447
Feb 3, 2021
Maintainer Author

@warlock-lv 程序是 cd 到 脚本目录了嘛?
比如:

/home/irony/Desktop/    test.py    libs/bcprov-jdk16-146.jar    aspose-cells-19.2.jar

cd /home/irony/Desktop/
python3 test.py

我目前是这样测试可以。如果还有问题那就不清楚是不是java的问题了

You must be logged in to vote
0 replies
Comment options

我在mac环境下 把jar包放在了 java_home下的 /lib文件夹下 还有jre/lib 文件夹下、也同时在/Library/Java/Extensions/下放了两个jar包,之所以在三个路径下放jar,是因为我不知道应该放在哪里。。。
……………………………………………………………………………………………………
我突然想起来,你那边是mac环境吗 ? 如果是的话,你的jar 放在哪个路径下了?

You must be logged in to vote
0 replies
Comment options

892768447
Feb 3, 2021
Maintainer Author

不对吧。我没有放到这几个目录。只需要在脚本同目录创建一个libs文件夹放进去@warlock-lv

You must be logged in to vote
0 replies
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment
2 participants
@892768447@warlock-lv
Converted from issue

This discussion was converted from issue #27 on October 08, 2023 06:03.


[8]ページ先頭

©2009-2025 Movatter.jp