问题标签 [os-agnostic]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
34576 浏览

java - servlet 如何获取 servlet 外部文件的绝对路径?

我们一直在使用 System.getProperties("user.dir") 来获取属性文件的位置。现在它已部署在 Tomcat(通过 servlet)上,系统调用将位置作为 Tomcat,而不是属性文件所在的位置。

我们如何动态调用属性文件?

鉴于:

  • Tomcat 不是应用程序部署的唯一方式
  • 我们无法控制应用程序的放置位置。
  • 相对路径将不起作用,因为正在使用 Vista 并且 Vista 会破坏相对路径。
  • 这必须适用于所有操作系统,包括(但不限于)Linux、XP 和 Vista。
  • 编辑我暗示了这一点,但如果我不够清楚,我无法知道路径字符串。
0 投票
13 回答
198782 浏览

makefile - 操作系统检测生成文件

我经常在几台不同的计算机和几个不同的操作系统上工作,它们是 Mac OS X、Linux 或 Solaris。对于我正在处理的项目,我从远程 git 存储库中提取代码。

无论我在哪个终端,我都希望能够处理我的项目。到目前为止,我已经找到了通过在每次切换计算机时更改生成文件来绕过操作系统更改的方法。然而,这很乏味并且会引起很多头痛。

如何修改我的 makefile 以检测我正在使用的操作系统并相应地修改语法?

这是生成文件:

0 投票
1 回答
170 浏览

c++ - 是否有独立于操作系统的方式来轮询 TOTAL 和/或 USED 视频内存?

我正在寻找一种方法来轮询显卡/集成芯片组上的总视频内存。

我知道 Windows 下的 WMI 辅助轮询,据我所知,WMI 在每次启动时都会构建信息。但是,作为一个乐观主义者,我正在寻找一种可能的独立于操作系统的方式来轮询总视频内存和可用或已用视频内存。

如果不可能,那么在 Windows、Linux 和 OSX 下最优雅的轮询方式是什么?

仅供参考,我不在 Windows 下使用 DirectX,只使用 OpenGL。

0 投票
2 回答
1878 浏览

image - 独立于操作系统的图像寻址

由于在我的计算机上同时使用 Windows 和 Ubuntu,我希望能够独立创建文档。我有一个徽标目录,我想在任何地方的任何文档中使用它们。

我用这些命令解决了不同文件寻址的问题:

如何提供此功能:

0 投票
7 回答
64399 浏览

image - 命令行批量图像裁剪工具

有没有可以处理各种格式的轻量级命令行批量图像裁剪工具(Linux 或 Windows)?

0 投票
2 回答
87 浏览

language-agnostic - 用于特定类型操作的高效文件系统 API

我偶尔会发现自己需要某些文件系统 API,如果文件系统支持,这些 API 可以非常有效地实现,但我从未听说过它们。例如:

  • 在分配单元边界上从头截断文件
  • 在分配单元边界上将文件一分为二
  • 再次在分配单元边界上从文件中间插入或删除块

我知道做这些事情的唯一方法是将数据重写到一个新文件中。这样做的好处是分配单元不再相关,但与一些低级文件系统魔术相比非常慢。

我了解对齐要求意味着这些方法并不总是适用,但我认为它们仍然有用。例如,在用户从存档中删除文件后,文件存档器可能能够非常有效地缩减存档,即使出于对齐原因,这会在两侧留下少量垃圾。

真的是这样的 API 不存在,还是我根本不知道它们?我最感兴趣的是 NTFS,但听说其他文件系统也会很有趣。

0 投票
31 回答
352387 浏览

ffmpeg - 如何使用 ffmpeg 转换整个目录?

如何通过命令行或批处理脚本使用 ffmpeg 转换整个目录/文件夹?

0 投票
2 回答
14911 浏览

makefile - 判断 make 是在 windows 还是 linux 上运行

如果 GNU make 在 linux 操作系统或 windows 操作系统上运行,有没有办法在 makefile 中知道?

我已经构建了一个 bash 脚本,它生成了一个用于构建我的应用程序的 makefile,它在我的 Debian 机器上运行良好。我想尝试在 MinGW/MSYS 上构建它,但问题是我必须构建和运行一些测试程序来检查源代码中的错误,并且要在 Windows 上运行它,我必须添加 .exe 后缀。

0 投票
1 回答
4065 浏览

python - 创建在执行之间持续存在的内存缓存

我正在开发一个 Python 命令行实用程序,它可能涉及对一组文件的相当大的查询。这是一个相当有限的查询列表(想想索引的数据库列)为了提高进程中的性能,我可以生成一次排序/结构化列表、映射和,然后重复点击它们,而不是每次都点击文件系统。

但是,这些缓存在进程结束时会丢失,并且每次脚本运行时都需要重新构建,这大大增加了我的程序的运行时间。我想确定在我的命令的多次执行之间共享此数据的最佳方式,这可能是并发的,一个接一个,或者在执行之间有很大的延迟。

要求:

  • 必须快速 - 应尽量减少任何类型的每次执行处理,包括磁盘 IO 和对象构造。
  • 必须与操作系统无关(或者至少能够挂钩到 Unix/Windows 上的类似底层行为,这更有可能)。
  • 必须允许相当复杂的查询/过滤——我认为键/值映射不够好
  • 不需要是最新的 - (简单地说)陈旧的数据非常好,这只是一个缓存,实际数据正在单独写入磁盘
  • 不能使用重量级的守护进程,比如 MySQL 或 MemCached——我想尽量减少安装成本,要求每个用户安装这些服务太多了。

喜好:

  • 如果可能的话,我想完全避免任何长时间运行的守护进程。
  • 虽然我希望能够快速更新缓存,但在更新时重建整个缓存并不是世界末日,快速读取比快速写入重要得多。

在我理想的幻想世界中,我能够在执行之间直接保留 Python 对象,有点像 Java 线程(如 Tomcat 请求)共享单例数据存储对象,但我意识到这可能是不可能的。不过,我越接近它越好。

候选人:

  • 内存中的 SQLite

    对于我的用例而言,SQLite 本身似乎不够快,因为它由磁盘支持,因此每次执行时都必须从文件中读取。也许这并不像看起来那么糟糕,但似乎有必要将数据库持久存储在内存中。SQLite 允许 DB使用内存作为存储,但这些 DB 在程序退出时被销毁,并且不能在实例之间共享。

  • 使用mmap将平面文件数据库加载到内存中

    在频谱的另一端,我可以将缓存写入磁盘,然后使用 mmap 将它们加载到内存中,可以在不同的执行之间共享相同的内存空间。但是,如果所有进程都退出,我不清楚 mmap 会发生什么。如果 mmap 最终从内存中刷新没关系,但我希望它停留一段时间(30 秒?几分钟?),以便用户可以一个接一个地运行命令,并且可以重用缓存。 这个例子似乎暗示需要一个打开的 mmap 句柄,但我还没有找到任何关于内存映射文件何时从内存中删除并需要从磁盘重新加载的确切描述。

    我想我可以实现这个,如果 mmap 对象在退出后仍然存在,但感觉非常低级,我想有人已经实现了一个更优雅的解决方案。我不想开始构建它只是为了意识到我一直在重建 SQLite。另一方面,感觉它会非常快,并且我可以根据我的特定用例进行优化。

  • 使用 Processing 在进程之间共享 Python 对象

    处理包指示“对象可以使用...共享内存在进程之间共享”。浏览其余的文档,我没有看到任何关于这种行为的进一步提及,但这听起来很有希望。任何人都可以指导我了解更多信息吗?

  • 将数据存储在 RAM 磁盘上

    我在这里关心的是特定于操作系统的功能,但我可以创建一个 RAM 磁盘,然后简单地读取/写入它(SQLite?)。fs.memoryfs包似乎是与多个操作系统一起工作的有前途的替代方案,但评论暗示了相当多的限制

我知道pickle是一种存储 Python 对象的有效方法,因此它可能比任何类型的手动数据存储都具有速度优势。我可以将泡菜加入上述任何选项吗?这会比平面文件或 SQLite 更好吗?

我知道有很多与此相关的问题,但我进行了相当多的挖掘,但找不到任何直接解决我关于多个命令行执行的问题的东西。

我完全承认,我可能想多了。我只是想了解我的选择,以及它们是否值得。

非常感谢你的帮助!

0 投票
0 回答
133 浏览

keyboard - 与语言无关的键盘:用英语培养中性文本 -kbd 没有变音符号之类的东西?

我喜欢在编程时使用美国德沃夏克国际键盘——每本手册、每份文档,也可以使用它进行编程。我把我的老师逼疯了,因为他们时不时地要求我用不同的语言写东西,比如德语、芬兰语、瑞典语或挪威语。我的成绩往往会愚蠢地下降,因为我懒得换键盘,错过了变音符号等奇怪的东西。我发现键盘切换速度很慢,而且我现在的 Drovakist 效率比 Qwertyist 高很多倍。

这个谜题需要一些语言理解来确定文本。是否存在类似第(3)点或以下oneliner的任何程序?

$ culturifyIt inputMe > outputYouIwillDetectAutomaticallyYourInputOutputLanguages

例子

“我是亨利。” >> 'Ich heiße Henry。(发芽)

“为 ett mojligt markkrig 重做 Tusentals solarter stor。” >> 'Tusentals soldater står redo för ett möjligt markkrig.' (瑞典化)

“约克。” >> 'Yöäk.' (修饰)

培养方法

  1. 键盘切换,慢。

  2. 特殊字符的特定组合键,例如变音 o、u 或 - 非常依赖于平台的解决方案,很容易出错。

  3. ...任何更自动化的方法可以检测语言然后对文本进行文化化?