小编the*_*x0r的帖子

如何在jvm上运行scala字节码?

如何在jvm上运行已编译的scala代码?

当我尝试以下命令时:

java -cp scala-library.jar -cp bin com.mcmc5.Main

我收到以下错误: Exception in thread "main" java.lang.NoSuchMethodError: main

在scala代码中,我有一个名为Main的对象,它具有在那里定义的main函数.如果我这样做 scala -cp bin com.mcmc5.Main ,它工作正常.

有什么东西我错过了吗?

谢谢你,thejinx0r

Edit1: 这是我的代码:我希望它在JVM上运行的原因是因为我想要实际执行字节码的服务器没有安装scala.这是我的主要基本上(它有一些在它之前定义的值和变量,但基本上:

package com.mcmc5
import java.text.{DateFormat, NumberFormat, DecimalFormat, SimpleDateFormat}
import java.util.{Date}
 object Main {  def main( args: Array[String]) = {
        println(numberOfOutputStructures)
        var structureSolver = new MC(20);
        structureSolver.start()
    }
} 
,我仍然有同样的错误.

编辑2 问题解决了.

所以我实际上不相信这一点,但这对我有用.

所以我找到了一个线程 (如果你可以调用它)并且说java通常不喜欢整体 java -cp scala-library.jar:bin com.mcmc5.Main 但是,这实际上解决了我的问题.通过使用 object Main extends Application 而不是定义一个名为main的函数来解决我的问题.我想这取决于你使用的scala版本.我目前正在使用scala 2.9,也许是rc2?还是rc1?

java jvm scala

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

关于Java和Scala以及并行化的问题

所以,我有几个关于scala的问题.

1)在scala中编写一个新项目会更快(在性能方面)还是我应该坚持常规java?我要继承的项目已经用java编写,但它可以大规模并行化.此外,这个项目是出于学术目的,所以我有点担心这不是一个好主意.我知道我必须先由我的主管来管理它,但这只是一个想法.

2)为了确保,我可以在我的计算机上编译我的scala代码并在安装了JVM的集群上执行"二进制文件"(编译的字节代码)?

3)如果我要编译继承的java程序,它应该工作吗?它应该更快吗?

(群集使用SGE)

java scala cluster-computing

3
推荐指数
1
解决办法
379
查看次数

如何在java中更改scala中的actors.maxPoolSize?

所以我有两个bash脚本.一个用于使用"scala"命令调用字节码,另一个用于使用"java"命令调用相同的代码.我的问题如下,当我使用scala时,我可以看到我可以获得大约80个线程(我创建并在我的"任务管理器"中显示),而当我使用java命令时,我只创建了大约20个线程.而不是80.在java下,actors.corePoolSize和actors.maxPoolSize的等效"定义"选项是什么?

这些是我的bash脚本.第一个有以下内容:

JAVA_OPTS="-Xmx1g" scala -cp bin com.mcmc5.Main -Dactors.corePoolSize=60 -Dactors.maxPoolSize=5000

第二个有:

java -cp scala-library.jar:bin com.mcmc5.Main -Dactors.corePoolSize=60 -Dactors.maxPoolSize=5000 -Xmx1g

java scala actor

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

std :: async函数串行运行

当在for循环中使用std :: async和launch :: async时,我的代码在同一个线程中串行运行,就好像每个异步调用在启动之前等待前一个异步调用一样.在std :: async引用(std :: async)的注释中,如果std :: future未绑定到引用,则可以这样做,但我的代码不是这种情况.任何人都可以找出它为什么连续运行?

这是我的代码片段:

class __DownloadItem__ { //DownloadItem is just a "typedef shared_ptr<__DownloadItem__> DownloadItem"
    std::string buffer;
    time_t last_access;
 std::shared_future<std::string> future;
}

for(uint64_t start: chunksToDownload){
        DownloadItem cache = std::make_shared<__DownloadItem__>();
        cache->last_access = time(NULL);
        cache->future =
                std::async(std::launch::async, &FileIO::download, this, api,cache, cacheName, start, start + BLOCK_DOWNLOAD_SIZE - 1);
     }
}
Run Code Online (Sandbox Code Playgroud)

未来将存储在共享的未来,因为多个线程可能正在等待同一个未来.

我也在使用GCC 6.2.1来编译它.

c++ multithreading asynchronous future c++11

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

如何从meteor访问node.js的文件系统?

我是meteor和node.js的新手,我觉得它真棒!

所以我遇到的问题是我无法从meteor访问节点的文件系统模块.在stackoverflow上,其他用户报告他们使用

var require = __meteor_bootstrap__.require;
var fs = require('fs');
Run Code Online (Sandbox Code Playgroud)

但是,当我调用它时,我收到此错误:

TypeError:undefined不是函数

我按照这个问题的答案,我不知道该怎么做.我已确保上面的代码位于服务器的启动部分.

fs node.js meteor

0
推荐指数
1
解决办法
703
查看次数