草庐IT

Shell脚本2

全部标签

java - Perl 脚本在终端中运行,但在从 Java 程序调用时不运行

我正在运行一个用另一个字符串替换字符串的Perl脚本:perl-pi.back-e's/str1/str2/g;'path/to/file1.txt当我从终端运行此命令时,它会将给定文件中出现的所有str1替换为str2。当我从java运行它时,它确实访问了文件但没有发生替换:Runtime.getRuntime().exec("perl-pi.back-e's/str1/str2/g;'path/to/file1.txt");我确定它访问了该文件(该文件似乎已在gedit中编辑(需要重新加载))。我尝试了JavaProcessBuilder类,但结果相同。当我将Runtime.exe

java - 从 java 执行 groovy 脚本时如何阻止对某些类的访问?

我对groovy和一般用java编写脚本还很陌生,我真的希望有一个简单的解决方案来解决我的问题。在我们的应用程序中,用户可以执行他们编写的groovy脚本他们自己,我们需要控制这些脚本能做什么,不能做什么。我读了很多关于沙盒groovy的东西,但要么我正在看错误的地方,或者我忽略了显而易见的地方。为了简单起见,我有一个小例子来演示这个问题。这是我的类加载器,它应该防止java.lang.System被加载并可供脚本使用:publicclassMyClassLoaderextendsClassLoader{@OverridepublicClassloadClass(Stringname)

java - 在脚本标记中使用&符号时 Thymeleaf 呈现错误

我想将googlemapjavascript添加到Thymeleaf模板,如下所示:https://maps.googleapis.com/maps/api/js?v=3.exp&libraries=places抛出异常:org.xml.sax.SAXParseException;lineNumber:209;columnNumber:93;Thereferencetoentity"key"mustendwiththe';'delimiter我试图将&更改为&但没有任何改变。非常感谢您的帮助。谢谢! 最佳答案 Thymeleaf使用

java - 哪些 DTrace 脚本值得在 Solaris 上测试和分析 Java 程序

我找到了DTrace很有趣,但我个人未能看到一个用例可以让我获得信息,如果不使用DTrace,我无论如何也无法获得这些信息。因此,我想听听我忽略了什么。我可以在带有DTrace的vmwareOpenIndianabuild148上做些什么,这在创建独立应用程序和JavaEEWeb应用程序(其中大部分应用程序与使用套接字的遗留后端进行大量通信)时会有所不同?非平凡的Dtrace脚本非常受欢迎。 最佳答案 我对DTrace有一些很好的体验。我有一个客户端在24x7运行的生产服务器上运行我们的Java代码。我们在应用程序方面遇到了一些性能

java - 插入排序比 shell 排序快得多

我正在阅读Sedgewick的“算法”中有关排序的章节。在此过程中,我编写了3个基本的排序算法:选择、插入和shell排序。书中说,尽管这三者都具有二次最坏情况的复杂性,但shell排序应该比随机数据的插入排序快得多。在书中,他们获得了600倍的性能提升。但我在笔记本电脑上得到以下乘法器(几乎不随阵列大小的增加而改变):选择:5.5倍插入:1x外壳:1.8倍!困扰我的问题是-为什么shell排序比插入排序慢将近两倍?!我想,我的shellsort实现有问题。但我几乎是从书上抄来的:classShellSortextendsSort{//precalculatesequence:1,4,

java - Apache Sling 脚本解析规则如何工作?

我的内容中有名称为tst的页面sling:resourceType=news-portal/pages/test页面结构(在/apps下):测试有sling:resourceSuperType=news-portal/pages/news-repo-main-page在浏览器中输入以下URL:http://localhost:4502/cf#/content/tst.selector.pdf.html在这个请求之后,我看到了selector.jsp的内容但我希望看到selector.pdf.jsp的内容,因为根据我的意见,它更适合。你能解释一下它是如何工作的吗?有没有可以显示selec

java - 是否可以查看 Eclipse 正在执行的 shell 命令?

我正在处理一个相当长的项目,它需要一个较旧的JDK才能正确编译、各种JAR包含等等。我正在使用批处理脚本组装整个项目,我想使用脚本使整个过程完全自动化。所以我想知道我是否可以查看Eclipse执行的shell命令,以便将一段特定的代码转换为JAR(从使用我指定的适当JDK进行编译到制作JAR),所以我不需要手动进入和浪费大量时间确保我自己在shell中做正确的事情。谢谢! 最佳答案 Eclipse不执行用于编译的shell命令。它使用自己的内置编译器。可以让Eclipse为您生成ANT脚本。该脚本可以使用Eclipse内置编译器编译

java - Ant Java 任务 : how to get output to console and a file-always record build output without shell redirection

我正在使用ant启动Java程序。我不想在程序终止后“松散”输出。所以我使用属性“output”将输出存储在文件中。不幸的是,我没有任何控制台输出了。在控制台和txt文件中输出的好方法是什么。我正在寻找替代品antmytast>myFile.txt因为我不想,“用户”必须使用shell重定向“>..”。.如果他/她不选择重定向,则输出将丢失。 最佳答案 Ant有一种记录输出的方法。http://ant.apache.org/manual/Tasks/recorder.html.Arecorderisalistenertothecur

使用 shell 脚本的 Java 代码格式化

我知道这很愚蠢,但我无法克服好奇心。是否可以编写一个shell脚本来格式化一段java代码?例如,如果用户在代码中写入:publicclassSuper{publicstaticvoidmain(String[]args){System.out.println("Helloworld");inta=0;if(a==100){System.out.println("Helloworld");}else{System.out.println("Helloworldwithelse");}}}我想编写一个shell脚本,使代码像这样。publicclassSuper{publicstatic

java - 如何创建安全的 JEXL(脚本)沙箱?

我正在为JEXL脚本创建一个沙箱,以便恶意用户无法访问我们授予他们访问权限的变量之外的数据,也无法对服务器执行DOS攻击。我想为同样这样做的其他人记录下来,并征求其他人对该方法的意见。以下是我所知道的需要解决的问题的列表:只允许使用白名单上的“new”实例化类。不允许访问任何类的getClass方法,因为这样可以调用forName并且可以访问任何类。限制对文件等资源的访问。只允许表达式执行一定的时间,这样我们就可以限制它消耗的资源量。这不适用于JEXL,但可能适用于您正在使用的脚本语言:不允许对象具有自定义的finalize方法,因为finalize方法是从终结器线程调用的,并且将使用