Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在AmazonEC2中运行Jar?_Java_Eclipse_Amazon Web Services_Amazon Ec2_Cloud - Fatal编程技术网

Java 如何在AmazonEC2中运行Jar?

Java 如何在AmazonEC2中运行Jar?,java,eclipse,amazon-web-services,amazon-ec2,cloud,Java,Eclipse,Amazon Web Services,Amazon Ec2,Cloud,我对亚马逊是相当陌生的。我有一个Java文件,它读取GBs的爬网数据,我正在使用AWS Eclipse工具包运行它。这里的缺点是,如果我需要读取整个爬网数据,我必须让我的机器运行数周,而这是不可能的。除此之外,我无法将GBs的数据下载到本地PC(因为它正在读取数据) 有没有什么方法可以让我把Jar上传到亚马逊,让亚马逊在不使用我的电脑的情况下运行它?我听说亚马逊的网络爬虫已经运行了好几个星期,没有将数据下载到开发者的机器上,也没有让开发者打开他的机器而不关闭几个月 我要问的功能就像亚马逊弹性地图

我对亚马逊是相当陌生的。我有一个Java文件,它读取GBs的爬网数据,我正在使用AWS Eclipse工具包运行它。这里的缺点是,如果我需要读取整个爬网数据,我必须让我的机器运行数周,而这是不可能的。除此之外,我无法将GBs的数据下载到本地PC(因为它正在读取数据)

有没有什么方法可以让我把Jar上传到亚马逊,让亚马逊在不使用我的电脑的情况下运行它?我听说亚马逊的网络爬虫已经运行了好几个星期,没有将数据下载到开发者的机器上,也没有让开发者打开他的机器而不关闭几个月

我要问的功能就像亚马逊弹性地图中的“工作流程”。你上传代码,它在里面运行。不管您是否打开“您的”计算机。

您可以使用*nix命令运行

nohup java -jar myjar.jar 2>&1 >> logfile.log &
这将运行jar文件,将输出[stderr和stdout]定向到
logfile.log
。需要
&
,以便它在后台运行,从而释放命令行/shell/

!!编辑

值得注意的是,我找到的在工作开始后停止工作的最简单方法是:

ps-ef | grep java

返回ec2用户19082 19056 98 18:12 pts/0 00:00:11 java-jar myjar.jar

然后
杀死19082

注意,您可以
tail-f logfile.log
或其他类似的衍生工具[less,cat,head]来查看jar的输出

对问题/评论的回答

嗨。您可以使用
System.out.println()
,是的,这将在logfile.log中结束。指示这是
2&>1
的命令,表示“将流2重定向到流1”。在unix中,这意味着将stderr重定向/管道到stdout。然后我们指定
>logfile.log
,这意味着“将输出附加到logfile.log”。当System.out.println()写入stdout时,它将在logfile.log中结束


但是,如果您的应用程序设置为使用Log4j/commons日志记录,则使用
LOG.info(“语句”)将在配置的“log4j.properties”日志文件中结束。使用此配置,只有系统生成的语句(错误、linux内部系统消息)或明确写入stdout(即
System.out.println()
)语句才会出现在
logfile.log

是的,你可以上传并运行它。这已经[讨论过][1][2]:[1]:[2]:@crnlx:没有。你必须在你的机器中保持控制台打开,你可以cron它,不是吗?@crnlx:cron它的意思是?我的意思是,你不能将它添加到crontab吗?请查看我上面发布的第一个问题的顶部答案的链接。您好,代码如何知道需要将内容放入日志文件?对于Java,
System.out.println()
写入日志文件?