我正在寻找一种工具来查找重复或类似的Java/Javascript代码.我无法确定" 类似 " 的确切定义,但我希望该工具足够智能并给我建议重构代码,例如,
(1)A类和B类有相似的方法(例如,有5个方法在两个类中都有相同的方法名,参数和类似的实现),那么它应该建议将这些类似的方法移到基类中.
(2)A类在不同的地方有多次相似的代码行,工具应该建议将这些相似的代码行移动到一个方法中.
我试过PMD可以找到重复的代码行,但它不够聪明.它没有找到那些在我的项目中广泛传播的类似源代码.
有这样的工具吗?
如何使用jshell运行java应用程序?它应该能够像 bash 那样指定类路径并调用 java 命令并传递一些参数,例如,
#!/bin/bash
$ARGS=...
$CLASSPATH=...
java -cp $CLASSPATH $ARGS com.example.MyApp
Run Code Online (Sandbox Code Playgroud)
更新:
我认为需要运行时或进程的包装,例如,
jshell> private String executeCommand(String command) {
...>
...> StringBuffer output = new StringBuffer();
...>
...> Process p;
...> try {
...> p = Runtime.getRuntime().exec(command);
...> p.waitFor();
...> BufferedReader reader =
...> new BufferedReader(new InputStreamReader(p.getInputStream()));
...>
...> String line = "";
...> while ((line = reader.readLine())!= null) {
...> output.append(line + "\n");
...> }
...>
...> } catch (Exception e) {
...> e.printStackTrace();
...> }
...> …Run Code Online (Sandbox Code Playgroud) 主要目标是进行真正的 NAT 而不是 NAPT。注意,正常docker run -p ip:port2:port1命令实际上是进行 NAPT(地址+端口转换)而不是 NAT(地址转换)。是否可以仅映射地址,但保持所有暴露的端口与容器相同,例如docker run -p=ip1:*:* ... ,而不是一一或一个范围?
诗.1。我的端口范围相当大(22-50070,ssh-hdfs),因此端口范围方法不起作用。
PS.2。也许我需要一群虚拟机并将主机加入到该群中。
ps.3 我在 github 上提出了功能请求。不确定他们是否会接受,但目前有 2000 多个未解决的问题(它非常受欢迎)。
在Linux上,您可以通过ip和端口访问任何容器,无需任何绑定(无-p)ootb。Docker 版本:CE 17+
If your host is windows, and docker is running on a linux VM like me, to access the containers, the only thing need to do is adding the route on windows route add -p 172.16.0.0 mask 255.240.0.0 ip_of_your_vm. Now you can access all containers by IP:port without …
我复制了sortByKey身体并重命名为sortByKey2,但他们给出了不同的结果.为什么第一个结果在这里错了?这是在日食中运行的.我重新启动了eclipse,但仍然得到了错误的结果.
package test.spark
import org.apache.spark.sql.SparkSession
object RddTests {
var spark = SparkSession.builder().appName("rdd-test").master("local[*]")
.enableHiveSupport()
.getOrCreate()
val sc = spark.sparkContext
def main(args: Array[String]) {
//mapValues
//combineWithKey
//foldByKey
sortByKey
sortByKey2
}
def sortByKey() {
val people = List(("Mobin", 2), ("Mobin", 1), ("Lucy", 2), ("Amy", 1), ("Lucy", 3), ("Lucy", 1))
val rdd = sc.parallelize(people)
val sortByKeyRDD = rdd.sortByKey()
println;println("sortByKeyRDD")
sortByKeyRDD.foreach(println)
}
def sortByKey2() {
val people = List(("Mobin", 2), ("Mobin", 1), ("Lucy", 2), ("Amy", 1), ("Lucy", 3), ("Lucy", 1))
val …Run Code Online (Sandbox Code Playgroud)