小编Sea*_*son的帖子

Bash:以grep命令的相反状态退出一行?

如何减少以下bash脚本?

grep -P "STATUS: (?!Perfect)" recess.txt && exit 1
exit 0
Run Code Online (Sandbox Code Playgroud)

看起来我应该可以用一个命令来完成它,但我这里总共有3个.

我的程序应该:

  • 阅读recess.txt
  • 退出1(或非零)如果它包含"STATUS:"NOT"Perfect"的行
  • 如果不存在这样的行,则退出0(即所有"STATUS:"行都是"完美")

答案奖授予最严格的剧本.谢谢!

示例文件

计划应该有退出状态0此文件:

FILE: styles.css 
STATUS: Perfect!

FILE: contour-styles.css
STATUS: Perfect!
Run Code Online (Sandbox Code Playgroud)

程序应该具有此文件的退出状态1(或非零):

FILE: styles.css 
STATUS: Perfect!

FILE: contour-styles.css
STATUS: Busted 
FAILURES: 1 failure

Id's should not be styled
       1. #asdf
Run Code Online (Sandbox Code Playgroud)

regex bash grep exit-code exit

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

你能在Swift中创建匿名内部类吗?

我已经厌倦了宣布整个课程能够UIAlertView通过延长来处理点击UIAlertViewDelegate.当我有多个可能的UIAlertViews时,它开始感到凌乱和错误,并且必须区分在处理程序中单击的内容.

我真正想要的是创建一个实现UIAlertViewDelegate协议的单个对象,并UIAlertView在显示它时将这个一次性对象提供给我.

我想要这样的东西:

let confirmDelegate = UIAlertViewDelegate() {
    func alertView(alertView: UIAlertView!, clickedButtonAtIndex buttonIndex: Int) {
        // Handle the click for my alertView
    }
}
Run Code Online (Sandbox Code Playgroud)

然后在显示警报时使用它:

let alertView = UIAlertView(title: "Confirm", message: "Are you sure?", delegate: confirmDelegate, cancelButtonTitle: "No", otherButtonTitles: "Yes")
alertView.show()
Run Code Online (Sandbox Code Playgroud)

如果没有宣布新课程,这可能吗?

我知道我可以这样做:

class ConfirmDelegate: UIAlertViewDelegate {
    func alertView(alertView: UIAlertView!, clickedButtonAtIndex buttonIndex: Int) {
        // ...
    }
}
Run Code Online (Sandbox Code Playgroud)

然后实例化一个ConfirmDelegate(),但我只是想知道这是否可能作为单线类声明和实例化.

anonymous-inner-class uialertview ios uialertviewdelegate swift

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

jprofiler或其他:如何汇总递归方法调用?

我有一个很长的操作,我想在JProfiler(或其他建议)中分析,但该方法是非常递归的,因此CPU视图中的树视图没有太大帮助.它显示了我这样的CPU时间:

beginOperation 100%
|- recursiveMethod 99%
| | - recursiveMethod 98%
| | | - recursiveMethod 97%
| | | | - ...more recursion
| | |- otherMethods 1%
| | - otherMethod 1%
| - otherMethods 1%
Run Code Online (Sandbox Code Playgroud)

你看,recursiveMethod真的不需要任何时间.相反,它otherMethods占用了时间,是我想要描述的.我理想的观点显示recursiveMethod接近0%的时间,并且otherMethods合并到接近100%.

那么在JProfiler中是否有任何方法可以将此视图向上滚动,以便我可以更清楚地查看我的CPU时间花费在哪里?有没有人建议另一个可以做到这一点的探查器?

注意:我正在使用JProfiler 6,但如果另一个版本可以执行此操作,则可能会升级.

谢谢!

java recursion profiling rollup jprofiler

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

我可以忽略BeanCreationException并注入null吗?

我们的情况是,我们的Spring连接了一些包含使用Java 6构建的ActiveMQ类的bean.我们的应用程序在客户的服务器上运行,因此我们无法保证它们安装了Java 6或更高版本.如果它们恰好具有Java 5,则应用程序无法启动,因为BeanCreationException具有依赖于ActiveMQ的类的s(根本原因是a UnsupportedClassVersionError).

所以我的问题是,有没有办法忽略a BeanCreationException仍然启动应用程序?我希望能够显示一条错误消息,说明他们需要安装Java 6或更高版本,但由于应用程序甚至无法启动,我从来没有机会这样做.

我的预感是没有办法做到这一点,因为Spring需要能够保证我的应用程序在初始化后正确构建,但我想我还是会问.关于如何实现我的最终目标的任何其他建议也将有所帮助和赞赏.

我们正在使用Spring 3.0.6

谢谢!

java spring dependency-injection java-5 java-6

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

应用程序运行后是否需要java .class文件?

我很难写这个问题的标题,但这是我的情况,我要问的是:

  • 我有一个Java项目,我运行"ant test"来运行测试
  • 测试大约需要10分钟
  • 我可以在运行这些测试的过程中切换到不同的Git分支而不会产生任何后果吗?
  • 我希望测试完成原始代码,并允许我在发生这种情况时简单地在不同的分支上工作.

我想我的问题的根源是:在加载并运行应用程序后是否需要.class文件? 类只是存储在内存中,我不再需要文件系统上的文件了吗?或者它仍然访问/读取文件系统上的东西?

任何洞察或更好地理解java正在运行的应用程序需要什么是值得赞赏的.

java git classloader

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

扩展现有的Gradle任务并覆盖配置

我想定义一个叫做dbStatus调用(或扩展?)的新任务run,然后重写args属性.

apply plugin: 'application'

run {
    args "server", "service.yml"
}


task(dbStatus, type: run) {
    args "db", "status", "service.yml
}
Run Code Online (Sandbox Code Playgroud)

这不起作用,因为"run"它不是有效的任务类.有没有快速扩展任务并只是覆盖属性的方法?

更新:决议

不幸的是,我不得不定义一个全新的JavaExec任务,并重新创建run配置的逻辑.这是我想出的:

task(dbStatus, type: JavaExec) {
    main mainClassName
    classpath sourceSets.main.runtimeClasspath
    args "db", "status", "service.yml"
}
Run Code Online (Sandbox Code Playgroud)

我不认为这是完全相同的run,因为它不是针对jar我不相信的构建运行,但它适用于我的目的.

gradle dropwizard

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

带有C3P0连接检查的jTDS套接字(SQL Server 2008 R2)

这是环境:

  • Java 5
  • 在Windows上运行Tomcat 6.0.18的Web应用程序(不确定版本)
  • 数据库:SQL Server 2008 R2
  • JDBC驱动程序:jTDS 1.2.5
  • 连接池提供者:C3P0 0.9.1.2

我正在尝试调试客户端遇到的问题.基本上每隔几周,我们的Web应用程序就锁定在他们的服务器上,他们无法访问它.重启可以解决问题.进一步调查显示,所有内容都被锁定的原因是一切都在等待数据库连接返回.我认为问题可能出在SQL Server上,而不是C3P0上.

我认为正在发生的是C3P0的"空闲检查查询"正在悬挂.查询是这样的:

select * from c3p0_connection_test_table
Run Code Online (Sandbox Code Playgroud)

看起来这个查询运行,结果永远不会返回.这是我在线程转储中看到的内容.注意DefaultConnectionTester.activeCheckConnection(),这是空闲检查:

"com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2" daemon prio=6 tid=0x0000000007c32000 nid=0x1250 runnable [0x000000001072f000]
   java.lang.Thread.State: RUNNABLE
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(SocketInputStream.java:129)
    at java.io.DataInputStream.readFully(DataInputStream.java:178)
    at java.io.DataInputStream.readFully(DataInputStream.java:152)
    at net.sourceforge.jtds.jdbc.SharedSocket.readPacket(SharedSocket.java:841)
    at net.sourceforge.jtds.jdbc.SharedSocket.getNetPacket(SharedSocket.java:722)
    - locked <0x000000016ac03f48> (a java.util.ArrayList)
    at net.sourceforge.jtds.jdbc.ResponseStream.getPacket(ResponseStream.java:466)
    at net.sourceforge.jtds.jdbc.ResponseStream.read(ResponseStream.java:103)
    at net.sourceforge.jtds.jdbc.ResponseStream.peek(ResponseStream.java:88)
    at net.sourceforge.jtds.jdbc.TdsCore.wait(TdsCore.java:3928)
    at net.sourceforge.jtds.jdbc.TdsCore.executeSQL(TdsCore.java:1045)
    - locked <0x000000016d965268> (a net.sourceforge.jtds.jdbc.TdsCore)
    at net.sourceforge.jtds.jdbc.JtdsStatement.executeSQLQuery(JtdsStatement.java:465)
    at net.sourceforge.jtds.jdbc.JtdsStatement.executeQuery(JtdsStatement.java:1301)
    at com.mchange.v2.c3p0.impl.DefaultConnectionTester.activeCheckConnection(DefaultConnectionTester.java:73)
    at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.testPooledConnection(C3P0PooledConnectionPool.java:374)
    at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.refurbishIdleResource(C3P0PooledConnectionPool.java:310)
    at com.mchange.v2.resourcepool.BasicResourcePool$AsyncTestIdleResourceTask.run(BasicResourcePool.java:1999)
    at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)
Run Code Online (Sandbox Code Playgroud)

但是什么可能导致这样一个简单的查询挂起来从套接字读取?我不相信这个表上会有任何数据库锁定,因为它完全由C3P0管理,从不插入/更新.此外,任何失败的尝试从池中获取连接(如果这是挂起的原因),我会期望在某处的堆栈跟踪.相反,我看到的是应用程序只是锁定,因为所有未来的连接请求都在等待这个"空闲检查"完成. …

sql-server jtds jdbc c3p0 python-idle

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

ARKit:ARFrame.timestamp 代表什么?

在 ARKit 中,ARFrame.timestampTimeInterval的值如下

185726.884258291
185726.91759425
185726.950930291
...
Run Code Online (Sandbox Code Playgroud)

我想从这些值中获取 unix 时间戳,但它们看起来并不熟悉。这些数字代表什么?

timestamp unix-timestamp ios arkit

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

JSF:依赖另一个控制器的控制器?

我正在做一个我们有a FooViewController和a的项目BarListController.Bars现在的清单需要依赖于Foo被查看.那么有人建议如何做到这一点?

从实现的角度来看,我不一定需要答案,但更多的是从设计的角度来看.那是:

  • 应该FooViewController以某种方式告诉BarListController什么Foo正在看?
  • 应该BarListControllerFooViewController什么Foo正在观看?
  • 在任何一种情况下,你如何将这些东西注入彼此?(这部分我需要实施帮助;-))

谢谢你的帮助!

model-view-controller jsf dependencies controller

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

Docker:在Dockerfile中,临时复制文件,但不能复制最终图像

我有一个我想要打包的Java服务,最终的docker镜像需要的唯一东西是JAR文件和配置文件.但是,我需要首先运行我的gradle命令来构建JAR,但我不希望所有使用的东西gradle都在结果docker镜像中.

这是我目前的DockerFile:

RUN apt-get update && apt-get install -y openjdk-7-jdk
COPY . /
RUN ./gradlew shadowJar
CMD ["java", "-jar", "service/build/libs/service.jar", "server", "service/service.yml"]
Run Code Online (Sandbox Code Playgroud)

你可以看到我必须COPY先把所有东西都放到一边这样才能运行./gradlew(否则就说命令无法找到).但最后,我需要的只是service.jarservice.yml文件.

我可能遗漏了一些东西,但是如何在./gradlew构建步骤中使所有内容可用,但只有结果图像包含service.jarservice.yml.

docker

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

ARKit:你如何迭代所有检测到的特征点?

我想对ARKit会话期间在单个帧中找到的每个检测到的特征点进行一些处理.如何迭代每个检测到的特征点,并获得它们的世界坐标?

我正在使用Swift,但Objective-C答案也会很好.

swift arkit

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