我试图部署一个websocket服务器到Elastic Beanstalk。 我有一个包含nginx和jar服务器的Docker容器,而nginx只是做转发。 nginx.conf是这样的: listen 80; location /ws/ { # <– this part only works locally proxy_pass http://127.0.0.1:8090/; # jar handles websockets on port 8090 proxy_http_version 1.1; proxy_set_header Upgrade $http_upgrade; proxy_set_header Connection "upgrade"; } location / { # <– this part works locally and on ElasticBeanstalk proxy_pass http://127.0.0.1:8080/; # jar handles http requests on port […]
我试图运行一个Docker容器,它包含一个Java jar服务器和nginx在它前面执行subdomain->端口转发,我似乎没有正确地设置它。 这是我的Dockerfile: FROM java:8 MAINTAINER somefool RUN apt-get update RUN apt-get -y install nginx COPY theBigOwlServer.jar /data/server.jar RUN rm -v /etc/nginx/nginx.conf ADD nginx.conf /etc/nginx/ RUN echo "daemon off;" >> /etc/nginx/nginx.conf EXPOSE 80 8080 CMD java -jar /data/server.jar CMD service nginx start #<— line AAA Java jar监听端口8080和8090.当我用-p 80:80 -p 8080:8080运行这个容器时,jar似乎并没有启动。 我没有看到它的任何控制台输出,并且我无法从curl localhost:8080.的容器外部到达它curl localhost:8080. 我可以到达端口80上的nginx,但是应该转发到jar的请求将返回一个空的答复。 但是,如果我注释掉AAA行,那么jar就会正常启动。 […]
我有两种方法来获取jarpath 1) File file = new File(new File(Main.class.getProtectionDomain().getCodeSource().getLocation().getPath()).getName()); String filename = file.getAbsolutePath().toString(); 2) String filename2 = Main.class.getProtectionDomain().getCodeSource().getLocation().toString().substring(6); 第一种方法完美适用于Windows和Mac,但是在Linux中,如果我的jar位于'/home/user/Documents/test folder/' ,它将返回我当前的工作目录+ jar文件 例如:如果我的terminal在/home/user/ ,即使MyJar.jarpath是'/home/user/Documents/test folder/'也会返回/home/user/MyJar.jar 。 第二种方法,对于每个操作系统,返回到文件的正确path,但用%20replace空格。 例如: /home/user/Documents/test%20folder/MyJar.jar 我如何在Linux中获得绝对path,就像我为Windows和Mac所做的一样,而不用%20作为空间replace?
是否有任何软件/脚本,可以让我(改变目录)到.jar / .ear / .zip文件并编辑它包含的文件的内容? 我正在研究一个大的EJB项目(yuck),而且我经常发现自己处于如下情况: something.ear/ |– something.jar/ | `– fileINeedToEdit.xml 我主要通过命令行(Mac / Linux)工作,所以我发现自己用jar -xvf解压文件,编辑我需要编辑的文件,然后用jar -cvf重新压缩。 很显然,这在头几次之后就成为头痛的问题。 我希望能够将压缩文件视为目录,并简单地将cd (或一些替代命令)用于我要编辑的文件。 有谁知道我可以做到这一点?
所以我得到了testing新的Java引擎的工作。 创build它的程序员使我成为一个testingjar文件,所以我可以testing一些crashmoments和负载平衡。 我知道这是一个文本的负载,但我希望有人能给我一个很好的答案! 预先感谢阅读! 我想自动化testing过程,所以我创build了一个bash文件。 到目前为止,它所做的是循环几次,在其中启动jar文件: java -jar /mnt/nas/i/testsail/clusteng.jar 2>> /dev/null & 之后,它得到刚开始的Java应用程序的processId: process_ids[$i]=$! 所以最终我喜欢那个jar的5个实例,全部和他们相关的processId。 现在我的问题是,程序员在应用程序周围添加了一个小shell,我可以告诉它在什么时候崩溃。 如果我只是从命令行启动引擎,它显示我的shell,我只能键入“失败moment_Of_Faillure”,它会不正常地在那里失败。 现在我想给每个实例另一个失败,我想从bash脚本中随机化。 我的问题是 如何从bash脚本中给每个实例提供命令? 我将在这里发布完整的bash脚本: #!/bin/bash # Engine testing script; Starts multiple engine instances and shoots one every 20 seconds clear echo "#####################" echo "# Start $1 processes #" echo "#####################" echo "" # create number of processes for […]
我正在尝试在linux命令行上的android应用程序中使用jar文件。 我读过: 在ant编译Android包括.jar这是一样的事情,但从来没有得到一个工作的答案。 试过这个: 如何从命令行添加外部jar库到一个android项目,但它没有工作,仍然给出了相同的错误信息。 错误是: -compile: [javac] Compiling 4 source files to /home/bianca/Documents/sem12012/FIT3140 /code/jackson-example/bin/classes [javac] messagemain.java:4: package org.codehaus.jackson.map does not exist [javac] import org.codehaus.jackson.map.ObjectMapper; [javac] ^ [javac] messagemain.java:21: cannot find symbol [javac] symbol : class ObjectMapper [javac] location: class messagemain [javac] ObjectMapper mapper = new ObjectMapper(); [javac] ^ [javac] messagemain.java:21: cannot find symbol [javac] […]
我正在尝试写一个将执行我的Java程序的shell代码。 我试过这个: #!/bin/sh COMPILECMD="javac server.jar" RUNCMD="java -jar server.jar 12777" $COMPILECMD $RUNCMD 但是我得到这个错误: 错误:类名“server.jar”仅在明确请求注解处理时才被接受1错误无法从server.jar加载Main-Class清单属性 在命令行我不使用jar文件,我只是编译,然后执行: javac server.java java server 12777
您好我已经开发了一个在Windows操作系统上使用javafx的swing应用程序。 它在Windows上工作正常。 但是,当我在Linux上运行jar时,默认打开档案pipe理器,它不能作为可执行文件工作。 我已经检查了jar文件的属性,它已经是一个可执行文件了。 我是否必须在Linux环境下重新编译源文件以在Linux上运行这个jar file ,或者这个jar file可以在Linux上运行?
在Linux中,JVM将工作方向设置为等于来自用户的主文件夹。 在Windows中,这是jar所在的文件夹。 我怎样才能findjar (从我的应用程序)位于改变工作目录? 马亭
我在/ root / umar / bin目录下有一个名为umar.jar的jar文件。 我在同一个目录下有一个shell脚本文件run.sh。 以下是run.sh的内容 #!/bin/bash "$JAVA_HOME"/bin/java -jar /root/umar/bin/umar.jar 现在,当我运行shell脚本时,出现以下错误 Exception in thread "main" java.lang.UnsupportedClassVersionError: Bad version number in .class file 经过一些Googlesearch之后,我发现(从上面提到的stackoverflow的一个民间人士),当Jar编译时使用比JRE更高版本的JDK时会发生这样的错误。 现在奇怪的是,如果我直接在shell上运行这个命令 java -jar umar.jar 它工作得很好。 如果jar是使用比我的JRE更高版本的JDK编译的,那么即使从shell也不能运行它。 你有什么build议?