小编The*_*son的帖子

从命令行为java项目创建可视调用图

我想从命令行为java项目创建一个调用图.我已经探索了几个项目,每次都达不到我想要的目标(无论是我的理解还是功能).关于如何做到这一点的一些简单指南将是很好的,另一个目标是获得该图的文本表示.

这是我尝试过的:

呼叫图:https://github.com/gousiosg/java-callgraph

这给了我想要的文本输出,但我找不到一种方法(在查看文档一段时间后),将其转换为可视(图像文件)图形输出.

烟灰:http://sable.github.io/soot/

花了很多时间查看SOOT文档,这似乎很难遵循,我设法让SOOT创建字节码.但是,我找不到有关如何从中创建调用图的任何指南.我只在主页上看到它可以执行此操作,我从谷歌搜索中获得了几个电子邮件对话,所有这些只是没有答案的问题.我正在使用命令的每晚构建:

java -cp soot-trunk.jar soot.Main -cp . -pp HelloWorld
Run Code Online (Sandbox Code Playgroud)

HelloWorld是我的java文件的名称,我得到一个.class文件的输出,但我看不到如何获得实际的调用图.这是在遵循指南之后:https://github.com/Sable/soot/wiki/Running-Soot.当我关注关于可视化的链接时,它们似乎是断开的链接,然后重定向回主页.我可以在命令行页面上看到有关使用-cg标志的一些信息,但无法使任何工作 - 我只是得到一个选项解析错误,建议一个无效的参数:https://ssebuild.cased.de/nightly /soot/doc/soot_options.htm#phase_5

搜索stackoverflow - 现有答案 我已经看过几个类似的问题,例如:Java调用图的静态分析 然而,答案只是说"使用soot",或"使用call-graph",我一直在尝试这些没有任何运气 - 虽然我最接近调用图,因为我有文本输出.

我看到一些基于GUI的软件和eclipse插件声称可以创建调用图,但我试图从命令行开始工作.

任何帮助真的很感激,一个指南,或一组命令与调用图或Soot,或其他程序真的会有所帮助.可能值得为他们的文档提交任何简短的教程,因为似乎有更多的问题而不是搜索时的答案.

作为参考,我目前正在尝试使用下面一个非常简单的类:

public class HelloWorld {

    public static void main(String[] args) {
        foo();
    }
    public static void foo(){
        System.out.println("Hello World");
    }
}
Run Code Online (Sandbox Code Playgroud)

java call-graph static-code-analysis

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

找到所有拉链,并解压缩到位 - Unix

我已经尝试了一段时间并相信我非常接近这一点,但我对Unix相当新,所以一直觉得这很困难.

我有一个文件夹,包含许多文件夹,其中一些文件夹中包含zip文件,有些文件夹没有.我试图解压缩任何子目录中的所有zip文件.

例如,我有:

文件/ A/something.java

文件/ B/somezipfile.zip

文件/ C/someotherfile.zip

文件/ d/AnotherZipFile.zip

我想解压缩它们(假设zips包含.java文件),得到如下结果:files/A/something.java

文件/ B/javafile.java

文件/ C/someotherfilefromzip.java

文件/ d/Anotherfile.java

我不介意ZIP文件在解压缩后是保留还是删除,也不错.

到目前为止我尝试过的.

1)我预计我可以使用管道,我是新手,像这样:

find . -name *.zip | unzip
Run Code Online (Sandbox Code Playgroud)

这不起作用.

2)我花了一些时间搜索,我在网上使用解决方案的最接近的是:

find . -name '*.zip' -exec unzip '{}' ';'
Run Code Online (Sandbox Code Playgroud)

解压缩,但将它们解压缩到当前工作目录中,我希望它们解压缩到位.我也不理解这个我想要学习的命令.

任何帮助深表感谢.

谢谢,

unix shell zip unzip find

12
推荐指数
3
解决办法
3万
查看次数

AWS Auto Scaling组 - 每个目标的应用程序负载均衡器请求计数

在AWS上,您可以创建自动扩展策略,该策略可根据"每个目标的应用程序负载均衡器请求计数"进行扩展.

像这样:

在此输入图像描述

这个实例的最小值为1,最大值为5.它的目标是为我的ElbTargetGroup实现10个"每个目标的请求数".

我的问题是,什么是"每个目标的应用程序负载均衡器请求数"?

这是:

  • 负载均衡器到目标的活动连接数除以目标数?
  • 每5分钟的请求数除以目标数?
  • 每1分钟的请求数除以目标数?

这里的文档只是说:

目标组中每个目标收到的平均请求数.您必须使用TargetGroup维度指定目标组.

此外,它必须超过该目标才能开始创建新实例?我问的主要原因是我向此负载均衡器发送了许多请求,但未触发扩展事件.

amazon-ec2 amazon-web-services autoscaling

10
推荐指数
2
解决办法
2707
查看次数

查找文件,在unix bash中重命名

这应该是相对微不足道的,但我已经尝试了一段时间没有太多运气.我有一个目录,里面有很多目录,每个目录都有自己的结构和文件.

我希望在工作目录下的任何目录中找到所有.java文件,并将它们重命名为特定名称.例如,我想将所有java文件命名为"test.java".

如果目录结构是:

./files/abc/src/abc.java
./files/eee/src/foo.java
./files/roo/src/jam.java
Run Code Online (Sandbox Code Playgroud)

我想简单地重命名为:

./files/abc/src/test.java
./files/eee/src/test.java
./files/roo/src/test.java
Run Code Online (Sandbox Code Playgroud)

当然,我的部分问题是路径可能有空格.我不需要担心重命名文件中的类或任何内容,只需要文件名.

如果目录中有超过1个.java文件,我不介意它是否被覆盖或者是否给出了选择要做的提示(要么是好的,每个目录中不可能有超过1个.

我尝试过的:

看着mv并找到,但是当我把它们管在一起时,我似乎做错了,我想确保将它们保留在当前位置并重命名,而不是移动.

谢谢,我真的很感激任何帮助.

unix bash rename mv

9
推荐指数
2
解决办法
1万
查看次数

重置JUnit测试的静态字段

我有一组JUnit测试,它们在Java程序上调用main方法,传入args并检查输出.没关系.

但是,如果我测试的程序具有被更改的静态值,则它们在测试之间将保持不变.这会导致问题.我无法控制正在测试的程序是什么,或者用于静态字段的名称.

我如何确保我的单元测试运行干净,就好像它是从头开始程序,而不保留那些静态字段.有没有办法以某种方式重置它们?

如果没有,我将不得不启动一个运行该程序的新进程,然后检查输出等,但这似乎有点矫枉过正.

编辑 - 请注意我无法控制单元测试正在测试的代码 - 我无法更改其字段名称,不幸的是,我也不会知道他们的字段名称.我想,如果没有开始新的流程,这是不可能的?

java junit

9
推荐指数
3
解决办法
2万
查看次数

Tyrus websocket客户端@OnMessage从未调用过 - Storj开源项目

我正在开发一个开源项目Storj.我正在编写一个连接到Node.js websocket后端的Java客户端.客户使用Tyrus.沟通应如下:

  • 客户端发送身份验证令牌(文本).
  • 服务器发回文件(二进制).
  • 服务器关闭连接.

我遇到问题,因为@OnMessage永远不会被调用.我尝试使用一个简单的javascript客户端在线访问相同的URL并使用相同的标记:https: //www.websocket.org/echo.html

我确实得到了一个回应,它告诉我Java项目有问题.

在能够下载文件之前,在早期阶段,我可以毫无问题地上传文件.但是,该步骤不需要调用@OnMessage(它只是上传文件然后服务器与消息断开连接),所以我不确定我的@OnMessage是否正常工作.

以下是Websocket的相关代码(也可在Github上获得):https: //github.com/NutterzUK/storj-java-bridge-client/blob/master/storj-client/src/main/java/storj/io /client/websockets/WebsocketFileRetriever.java

package storj.io.client.websockets;

import com.google.gson.Gson;
import storj.io.restclient.model.FilePointer;

import javax.websocket.*;
import java.io.File;
import java.io.IOException;
import java.nio.ByteBuffer;

import java.util.concurrent.CountDownLatch;
import java.util.logging.Logger;

/**
 * Created by steve on 12/07/2016.
 */
@ClientEndpoint
public class WebsocketFileRetriever {

    private Logger logger = Logger.getLogger(this.getClass().getName());
    private Gson gson = new Gson();
    private FilePointer filePointer;
    private File outputFile;
    private AuthorizationModel authModel;
    private CountDownLatch latch;

    public WebsocketFileRetriever(FilePointer filePointer, File outputFile, CountDownLatch latch){
        this.filePointer = …
Run Code Online (Sandbox Code Playgroud)

java websocket node.js tyrus

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

禁用来自maven的hibernate日志记录

我最近在我的pom.xml中添加了hibernate,它运行正常.然而,日志记录是令人恼火的,我不知道如何关闭它或限制它的水平(我甚至不知道它包括什么来开始所有这些日志记录).我是新手,对于maven和冬眠.

这是我的pom.xml依赖项:

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <!-- Hibernate -->
    <dependency>
        <groupId>org.hibernate</groupId>
        <artifactId>hibernate-core</artifactId>
        <version>4.0.1.Final</version>
    </dependency>

    <dependency>
        <groupId>org.hibernate.common</groupId>
        <artifactId>hibernate-commons-annotations</artifactId>
        <version>4.0.1.Final</version>
        <classifier>tests</classifier>
    </dependency>

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>5.1.10</version>
    </dependency>
</dependencies>
Run Code Online (Sandbox Code Playgroud)

日志开头如下:

21:17:15.115 [main] DEBUG org.jboss.logging - Logging Provider: org.jboss.logging.Slf4jLoggerProvider
21:17:15.130 [main] DEBUG org.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BooleanType@ba4d54
21:17:15.130 [main] DEBUG org.hibernate.type.BasicTypeRegistry - Adding type registration boolean -> org.hibernate.type.BooleanType@ba4d54
21:17:15.130 [main] DEBUG org.hibernate.type.BasicTypeRegistry - Adding type registration java.lang.Boolean -> org.hibernate.type.BooleanType@ba4d54
Run Code Online (Sandbox Code Playgroud)

我已经尝试将log4j.properties文件添加到我的资源中,它似乎没有改变任何东西.我也尝试过simplelog.properties(关注其他没有帮助的SO帖子).我有点卡在这里,帮助真的很感激.理想情况下,我只想将记录器设置为关闭,或只是设置mysql查询.

这是依赖树:

    [INFO] org.springframework:gs-rest-service:jar:0.1.0
[INFO] +- org.springframework.boot:spring-boot-starter-web:jar:1.1.10.RELEASE:compile
[INFO] |  +- org.springframework.boot:spring-boot-starter:jar:1.1.10.RELEASE:compile …
Run Code Online (Sandbox Code Playgroud)

java configuration hibernate log4j maven

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

如何设置自定义surfaceview的大小

如果我以完全错误的方式解决这个问题,请告诉我,但如果我解释这个问题,我希望有人可以帮助我,或指出我正确的方向.

我需要一个可以移动的自定义视图,我希望在我的一个主要活动中将此视图放在我的relativeLayout的一部分上.我按照移动教程(下面的链接)创建了一个updateThread和一个扩展SurfaceView的类. http://mobile.tutsplus.com/tutorials/android/android-sdk-achieving-movement/

这有效,我可以把它放在我的应用程序中.当我想在我的布局中将其放在不同的活动上时,问题就来了.我设法将视图放入,但它显示全屏,在其他项目后面.我的部分问题是,它的大小取决于屏幕的大小等.nelativelayout使用了大量的图像,Android将选择所需的正确大小的图像.对于SurfaceView,如何设置依赖于手机的大小?

现在,我有相对布局正确显示自定义视图需要去的图像.图像显示正确的大小,只是我需要显示的静态版本.你知道如何将我的自定义视图移动到这个空间吗?

如果你需要任何代码,我可以发布任何代码,我真的很难与这个.即使你可以指出我正确的方向,或者让我知道我是否应该使用表面视图?视图只需要显示一些图像在屏幕上滑动,这就是全部(在主要布局的那一部分内)

非常感谢提前

android surfaceview custom-view

6
推荐指数
1
解决办法
2万
查看次数

Excel简单公式仅适用于过滤结果

我有一组包含1000多个条目的数据.我可以使用自动过滤器过滤这些.在底部,我有一些简单的公式,例如AVERAGE()和QUARTILE().我想要实现的是,当我过滤数据时,AVERAGE的结果应该改变,因此他们应该只考虑可见数据.

我一直在搜索谷歌和这里,但似乎找不到这样的东西,除了使用"小计",但这不是我想要使用的公式.

这可能吗?谢谢,

excel formula filter

6
推荐指数
1
解决办法
2万
查看次数

Android市场安装数量需要多长时间才能更新?

我找不到任何说明更新需要多长时间的内容.我发布了一个应用程序,它可以在那里使用.当我在google play上访问我的开发者控制台时,它说它有0次下载.我知道这不是真的,因为我收到了一些错误报告,而且我还在我自己的几台设备上下载了它.你知道更新需要多长时间吗?有没有人从经验中知道?这是我的论文所以我真的可以用一些数字来确保时间准确.

谢谢,

android

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