无法从.java类fi加载主类

2024-06-26 14:35:38 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用Python通过一个名为wot的工具使用jupyter notebook来可视化一个图形。它利用了Gephi,一个基于java的图形工具。我尝试运行函数返回坐标输出文件,如下所示:

run_gephi(input_graph_file, output_coord_file, n_steps):
    layout = 'fa'
    import psutil
    memory = int(0.5 * psutil.virtual_memory()[0] * 1e-9)
classpath = os.path.dirname(
    pkg_resources.resource_filename('wot', 'commands/resources/graph_layout/GraphLayout.class')) + ':' + \
            pkg_resources.resource_filename('wot', 'commands/resources/graph_layout/gephi-toolkit-0.9.2-all.jar')
subprocess.check_call(['java', '-Djava.awt.headless=true', '-Xmx{memory}g'.format(memory=memory), '-cp', classpath, \
                       'GraphLayout', input_graph_file, output_coord_file, layout, str(n_steps), str(os.cpu_count())])

然后它在我的jupyter笔记本中返回以下错误:

CalledProcessError                        Traceback (most recent call last)
<ipython-input-18-5fc832689b87> in <module>
----> 1 df, adata = compute_force_layout(ds)

<ipython-input-7-6cb84b9e0fa0> in compute_force_layout(ds, n_neighbors, n_comps, neighbors_diff, n_steps)
 24                 writer.write("{u} {v} {w:.6g}\n".format(u=i + 1, v=j + 1, w=W[i, j]))
 25 
---> 26     run_gephi(input_graph_file, output_coord_file, n_steps)
 27     # replace numbers with cids
 28     df = pd.read_table(output_coord_file, header=0, index_col='id')

<ipython-input-16-28772d0d10cc> in run_gephi(input_graph_file, output_coord_file, n_steps)
  7                 pkg_resources.resource_filename('wot', 'commands/resources/graph_layout/gephi-toolkit-0.9.2-all.jar')
  8     subprocess.check_call(['java', '-Djava.awt.headless=true', '-Xmx{memory}g'.format(memory=memory), '-cp', classpath, \
----> 9                            'GraphLayout', input_graph_file, output_coord_file, layout, str(n_steps), str(os.cpu_count())])

~/anaconda3/lib/python3.7/subprocess.py in check_call(*popenargs, **kwargs)
339         if cmd is None:
340             cmd = popenargs[0]
--> 341         raise CalledProcessError(retcode, cmd)
342     return 0
343 

CalledProcessError: Command '['java', '-Djava.awt.headless=true', '-Xmx25g', '-cp', '/home/iik/.local/lib/python3.7/site-packages/wot/commands/resources/graph_layout:/home/iik/.local/lib/python3.7/site-packages/wot/commands/resources/graph_layout/gephi-toolkit-0.9.2-all.jar', 'GraphLayout', '/tmp/gephiznxedn32.net', '/tmp/coordsd64x05ww.txt', 'fa', '10000', '8']' returned non-zero exit status 1.

在终端中发现以下消息

 Error: Could not find or load main class GraphLayout

“我能找到”GraphLayout.java文件“和”gephi-toolkit-0.9.2-全部.jar“文件在路径中,所以我真的不知道为什么不能加载。 你有什么建议吗?你知道吗

  • 添加*

GraphLayout类不包含在Gephi中,而是由GraphLayout.java文件. 你知道吗


Tags: 文件inputoutputjavastepscommandsfilegraph